gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:14:52 26 4
gpt4 key购买 nike

我在 Go 中有一个简单地写入缓冲区的函数。我没有在 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 方面经验不足,无法确定。

如有任何帮助,我们将不胜感激。

编辑:更新代码。

最佳答案

在 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
}
}

关于go - 单值上下文中的多值无返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com