为了账号安全,请及时绑定邮箱和手机立即绑定

单值上下文中的多值无返回函数

单值上下文中的多值无返回函数

Go
慕森卡 2021-12-20 19:13:57
我在 Go 中有一个 func,它只是写入缓冲区。我没有在 func 上设置返回类型,所以我不确定为什么我会看到这个错误。这是我的代码:func Write(buffer *bytes.Buffer, values ...string) {  for _, val := range values    _, err := *buffer.WriteString(val)    if err != nil {      // print error    }  }  _, err := *buffer.WriteString(" ")  if err != nil {    // print error  }}它在我有 buffer.WriteString 的两行都抱怨。这让我相信它与缓冲区上 WriteString 方法的返回类型有关,但我对 Go 的经验不足,无法确定。任何帮助,将不胜感激。编辑:更新代码。
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

在 Go 中调用方法不需要取消引用指针。该*运营商之前buffer.WriteString被应用到返回的值。要取消引用,buffer您需要编写(*buffer).WriteString,但这根本不需要:


func Write(buffer *bytes.Buffer, values ...string) {

    for _, val := range values {

        _, err := buffer.WriteString(val)

        if err != nil {

            // print error

        }

    }

    _, err := buffer.WriteString(" ")

    if err != nil {

        // print error

    }

}


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信