5
複数の戻り値を持つ関数を呼び出すための正しい構文は何ですか、そのうちの1つ(またはそれ以上)は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
}
}
ので、正しい呼び出し規約は何ですか?