fmt中出现意外输出.Println()函数



我从golang(total noob(开始,我为fmt.Println(str)使用了一个简单的包装器函数,只是因为它更短,我更习惯它:

func echo(str ...interface{}) {
fmt.Println(str)
}

问题是echo("Hello")的输出是[Hello]而不是Hello

我是不是遗漏了一些语法细节?如何更改功能以按预期工作?

除了这个函数的实际需求之外,我对这个问题的特定语言细节感兴趣。

谢谢!

问题是您将参数作为切片发送到fmt.Println,而不是作为varadic。

将您的方法更改为:

func echo(str ...interface{}) {
fmt.Println(str...)
}

它会如你所期望的那样工作。

查看此站点的主题变元函数的参数

最新更新