Python のリスト内包表記と同等の Go を使用
Python のリスト内包表記は、要素のフィルター処理と変換によってリストを生成する簡潔な方法を提供します。ただし、Go に移行していて、この機能を複製するのが難しい場合は、次の解決策があります:
フィルター パッケージを使用したエレガントなソリューション
ありがたいことに、Go コミュニティは、Python のリスト内包表記と同様の機能を提供するフィルター パッケージを提供しています。具体的には、Choose 関数はスライスとフィルタリング関数を受け取り、フィルタを通過した要素のみを含む新しいスライスを返します。
import "github.com/rogpeppe/go-internal/filter" func Choose(slice []T, fn func(T) bool) []T
例:
// Get even numbers from a list a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} expect := []int{2, 4, 6, 8} result := filter.Choose(a, isEven)
代替アプローチ: For ループ
フィルター パッケージは便利ですが、従来の for ループを使用することに注意することが重要です。は依然として実行可能かつ効率的なオプションです。 Go の for ループは柔軟性と最適化の機会を提供します。
for i := range a { if someCondition { result = append(result, a[i]) } }
結論
Go にはネイティブのリスト理解構文がないにもかかわらず、フィルター パッケージと for ループは堅牢な機能を提供します。リストのフィルタリングと変換のためのソリューション。フィルター パッケージは簡潔な構文を提供しますが、for ループは依然としてパフォーマンスが高く効率的な代替手段です。最終的に、どのアプローチを選択するかは、アプリケーションの特定の要件によって決まります。
以上がGo でリスト理解機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。