考虑以下示例方法,每个方法都返回三个整数:
func a() (int, int, int) {...}
func b() (int, int, int) {...}
我想知道这些方法的返回值是否相同,像这样:
equal := a() == b()
但是,这不会编译,因为编译器需要一个值:
my_file.go:14: multiple-value a() in single-value context
my_file.go:14: multiple-value b() in single-value context
我目前的工作是创建一个与方法具有相同签名的自定义类型,然后创建第三个函数来进行检查:
type multiReturnFunc func() (int, int, int)
func a() (int, int, int) {...}
func b() (int, int, int) {...}
func checkMultiReturns(a, b multiReturnFunc) bool {
a1, a2, a3 := a()
b1, b2, b3 := b()
return a1 == b1 && a2 == b2 && a3 == b3
}
...
equal := checkMultiReturns(a, b)
但我想有一个更通用的解决方案。
绝地无双
慕莱坞森
相关分类