下面的代码返回错误multiple-value in single-value context
。我不明白为什么,因为函数有一个参数(我传递一个空字符串“”)并返回一个字符串和一个错误(我将它分配给 r
和错误
).
package main
import "fmt"
type Some struct{}
func main() {
cl := Some{}
r, err := &cl.Start("")
fmt.Println(r)
}
func (cs *Some) Start(sg string) (string, error) {
return sg, nil
}
最佳答案
这是一个运算符优先级的东西。 &cl.Start()
与 &(cl.Start())
相同,这不是您想要的。
使用括号阐明您想要的是(&cl).Start()
。
或者您可以只使用指针变量。
func main() {
cl := &Some{}
r, err := cl.Start("")
fmt.Println(r)
}
关于go - 单值上下文中的多值 (go),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866808/