Go リスト内のすべての要素に関数を効率的に適用するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-13 04:39:02
オリジナル
119 人が閲覧しました

How Can I Apply a Function to Every Element in a Go List Efficiently?

Go のリストへの効率的な関数適用

Go リスト内のすべての要素に関数を適用し、結果を新しいリストに保存するには従来のアプローチでは、入力リストをループし、結果を出力リストに追加します。ただし、Go 1.18 以降では、より簡潔で一般的な解決策、Map 関数があります。

Map 関数は、型 T の要素のリストと、各要素を型の値に変換する関数を受け取ります。 V. 入力リスト内の各要素に関数を適用した結果を含む、[]V 型の新しいリストを返します。

例を次に示します。

func Map[T, V any](ts []T, fn func(T) V) []V {
    result := make([]V, len(ts))
    for i, t := range ts {
        result[i] = fn(t)
    }
    return result
}

// Usage example
input := []int{4, 5, 3}
outputInts := Map(input, func(item int) int { return item + 1 })
outputStrings := Map(input, func(item int) string { return fmt.Sprintf("Item:%d", item) })
ログイン後にコピー

この例では、入力は整数のリストです。 Map 関数を 2 つの異なる関数とともに適用して、インクリメントされた整数のリスト (outputInts) と書式設定された文字列のリスト (outputStrings) を作成できます。これにより、明示的なループの必要性がなくなり、従来のアプローチに代わる簡潔で効率的な方法が提供されます。

以上がGo リスト内のすべての要素に関数を効率的に適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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