我在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方法的返回类型有关,但我没有足够的经验去了解。
任何帮助都将不胜感激。
编辑:更新了代码。
答案 0 :(得分: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
}
}