dongqiuqiu4736 2018-10-27 16:39
浏览 121
已采纳

fmt.Println()函数中的异常输出

I'm starting with golang (total noob), and I'm using a simple wrapper function for fmt.Println(str), just because it's shorter and I'm more used to it:

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

The thing is that the output for echo("Hello") is [Hello] instead of Hello.

Am I missing some syntax detail here? How can I change the function to work as expected?

Besides the actual need for this function, I'm interested in the language-specific details about this issue.

Thanks!

  • 写回答

1条回答 默认 最新

  • doulangbi6869 2018-10-27 16:43
    关注

    The problem is that you send to fmt.Println parameter as a slice, but not as varadic.

    Change your method to :

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

    And it will work as you expect.

    Check topic Arguments to variadic functions from this site.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 maccms影视模板 制作影视网站失败 求
  • ¥15 stm32按键设置闹钟数进退位不正常
  • ¥15 三电平逆变器中点电位平衡问题
  • ¥20 这怎么写啊 java课设
  • ¥15 用C语言完成一个复杂的游戏
  • ¥15 如何批量更改很多个文件夹里的文件名中包含文件夹名?
  • ¥50 MTK手机模拟HID鼠标出现卡顿
  • ¥20 求下下面这个数据结构代码
  • ¥20 前端 二进制文件流图片转化异常
  • ¥15 github上的这个C语言项目如何跑起来