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

标签 go refactoring println

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

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

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

我是否遗漏了一些语法细节?如何更改函数以按预期工作?

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

谢谢!

最佳答案

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

将您的方法更改为:

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

它会如您所愿地工作。

this site 查看主题可变参数函数 .

关于go - fmt.Println() 函数中的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024122/

相关文章:

encoding - 在 Golang 中创建具有已知文本字符串的字节 slice

for-loop - 在范围循环中调用结构体方法

javascript - 从嵌套函数转换为链式函数

java - 如何为给定的每个命令行参数执行一段代码,但将其打印在一行中

GO 读取 YAML 文件并映射到结构 slice

java - 如何更改 java 代码,以便其子类可以对其进行定制,而影响最小

javascript - 重构用于遍历 DOM 的工作递归代码 (hasFiveDIV)

string - golang 默认情况下在字符串后添加空格?

arrays - 为什么 println!仅适用于长度小于 33 的数组?

go - 在结构映射中实现结构集