2013-12-03 3 views
2

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

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) 
    } 
} 

ответ

4

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

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

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

Смежные вопросы