5
我想知道正確的語法是用於調用具有多個返回值的函數,其中一個(或多個)類型爲interface{}
。具有接口{}和類型斷言的多個返回類型(在Go中)
返回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
}
}
那麼,什麼是正確的調用約定?