我想知道调用具有多个返回值的函数的正确语法是什么,其中一个(或多个)是interface{}
类型。
返回interface{}
的函数可以这样调用:
foobar, ok := myfunc().(string)
if ok { fmt.Println(foobar) }
字符串
但是下面的代码失败,错误为multiple-value foobar() in single-value context
:
func foobar()(interface{}, string) {
return "foo", "bar"
}
func main() {
a, b, ok := foobar().(string)
if ok {
fmt.Printf(a + " " + b + "\n") // This line fails
}
}
型
那么,什么是正确的调用约定呢?
2条答案
按热度按时间k7fdbhmy1#
字符串
只能将类型Assert应用于单个表达式。
t9aqgxwy2#
后通用支持golang。
字符串