猿问

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

我从 golang(完全菜鸟)开始,我正在使用一个简单的包装函数 for fmt.Println(str),只是因为它更短而且我更习惯了:

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

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

我在这里遗漏了一些语法细节吗?如何更改功能以按预期工作?

除了这个功能的实际需要外,我还对有关此问题的特定于语言的详细信息感兴趣。

谢谢!


森栏
浏览 110回答 1
1回答

跃然一笑

问题是您将fmt.Println参数作为切片发送给参数,而不是作为 varadic。将您的方法更改为:func echo(str ...interface{}) {     fmt.Println(str...) }它会如您所愿地工作。
随时随地看视频慕课网APP

相关分类

Go
我要回答