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

我在 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 的经验不足,无法确定。


任何帮助,将不胜感激。


编辑:更新代码。


慕森卡
浏览 159回答 1
1回答

波斯汪

在 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    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go