Go の割り当てでの配列のアンパック
Go は Python のような複数の変数への配列の直接アンパックをサポートしていませんが、同様のことを実現する戦略があります。
アドホック アンパック関数
1 つの方法は、カスタム関数を定義することです。
func splitLink(s, sep string) (string, string) { x := strings.Split(s, sep) return x[0], x[1] }
その後、次を使用して配列をアンパックできます。この関数:
name, link := splitLink("foo\thttps://bar", "\t")
可変個引数ポインター引数
別の方法では、可変個引数ポインター引数を使用します:
func unpack(s []string, vars... *string) { for i, str := range s { *vars[i] = str } }
これにより、次のように記述できます。
var name, link string unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
ただし、これには変数を明示的に宣言する必要があり、読みにくくなります。
より多くの値を処理する
値の数がunpacked が知られている場合は、一連の代入ステートメントを使用できます:
var name, link, description string x := strings.Split("foo\thttps://bar\tDescription", "\t") name = x[0] link = x[1] description = x[2]
または、ループを使用して配列を反復処理し、変数に値を代入することもできます:
var name, link, description string for i := 0; i < len(x); i++ { switch i { case 0: name = x[i] case 1: link = x[i] case 2: description = x[i] } }
以上がGo の割り当てで配列を解凍する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。