ホームページ > バックエンド開発 > Golang > Go でワンライナーを使用してオブジェクトの配列を新しい配列にエレガントにマップするにはどうすればよいですか?

Go でワンライナーを使用してオブジェクトの配列を新しい配列にエレガントにマップするにはどうすればよいですか?

DDD
リリース: 2024-12-26 18:34:10
オリジナル
613 人が閲覧しました

How Can I Elegantly Map an Array of Objects to a New Array in Go Using a One-Liner?

Go でのオブジェクトの配列のマッピング: 雄弁なソリューションの探索

Go では、オブジェクトの配列を新しい配列にマッピングするには、柔軟性に見合った洗練されたアプローチが必要です他の言語でも同様の操作が簡単にできること。 Map 関数を使用して各要素を変換できる Node.js とは異なり、Go の配列は不変です。

ワンライナー ソリューションの模索:

この質問は、JavaScript のマップ関数の動作を模倣して、オブジェクトの配列を対応するフルーツの配列にマップするための洗練された 1 行の解決策を求めています。範囲ループはオプションですが、1 行のソリューションが推奨されます。

Map 関数の紹介:

Go には配列用の Map メソッドが組み込まれていません。 、汎用のトップレベル関数の作成が可能になります。 Map 関数はこの目的を果たし、要素のスライスと各要素を目的の結果に変換する関数を受け入れます。

func Map[T, U any](ts []T, f func(T) U) []U {
    us := make([]U, len(ts))
    for i := range ts {
        us[i] = f(ts[i])
    }
    return us
}
ログイン後にコピー

Map 関数の適用:

Map 関数を使用すると、目的のワンライナーを次のように記述できます。

fruits := Map(list, func(el Element) string { return el.Fruit })
ログイン後にコピー

結論:

Map 関数は、オブジェクトの配列を変換された値の新しい配列にマップするための洗練された効率的な方法を提供します。 Go の配列は他の言語ほどの柔軟性を備えていないかもしれませんが、Map のような汎用のトップレベル関数を使用すると、データ変換タスクに対する表現力豊かで慣用的なソリューションが可能になります。

以上がGo でワンライナーを使用してオブジェクトの配列を新しい配列にエレガントにマップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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