Go で配列から複数の代入を実現するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-12 11:35:01
オリジナル
316 人が閲覧しました

How to Achieve Multiple Assignments from Arrays in Go?

Go での配列からの複数の代入

Python では、次のような代入を使用して配列からのアンパックをエレガントに行うことができます。

a, b = "foo;bar".split(";")
ログイン後にコピー

Go は、このような一般的なパッキング/アンパッキングをサポートしていません。ただし、複数の割り当てを実現するにはいくつかの方法があります。

カスタム関数:

1 つの方法は、次のような複数の値を返すカスタム関数を作成することです。

func splitLink(s, sep string) (string, string) {
    x := strings.Split(s, sep)
    return x[0], x[1]
}
ログイン後にコピー

その後、関数から直接割り当てることができますcall:

name, link := splitLink("foo\thttps://bar", "\t")
ログイン後にコピー

可変個引数ポインター引数:

もう 1 つのオプションは、可変個引数ポインター引数を使用することです:

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)
ログイン後にコピー

アプローチの選択:

2 つの変数のみを分割して割り当てる一般的なシナリオでは、カスタム関数のアプローチの方が読みやすい場合があります。より複雑な、または可変サイズの配列シナリオの場合は、可変長ポインター引数のアプローチがより柔軟になる可能性があります。

以上がGo で配列から複数の代入を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート