【发布时间】:2011-10-26 03:03:53
【问题描述】:
我想知道调用具有多个返回值的函数的正确语法是什么,其中一个(或多个)是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
}
}
那么,正确的调用约定是什么?
【问题讨论】: