вызов golang println с переменными аргументами

У меня есть следующий код для печати n строк для целей отладки. output() печатает адрес аргументов вместо параметров. Как это исправить?

var outputMax = 10
var outputCnt = 0

func output(args ...interface{}) {
    outputCnt++
    if(outputCnt < outputMax) { println(args) }
}

func main() {
    for i := 0; i < 5; i++ {
        output("Value of i is now:", i)
    }
}

person satish    schedule 03.12.2013    source источник


Ответы (1)


Обычный способ вызова функции varargs выглядит так:

func output(args ...interface{}) {
    println(args...)
}

Однако это приведет к ошибке компиляции invalid use of ... with builtin println. Если вместо этого вы переключитесь на fmt.Println(), это должно сработать.

person James Henstridge    schedule 03.12.2013