スライスのコレクションの一般的な動作
ClockInterval や Period など、異なるタイプのスライスのコレクションを操作する場合、共通の課題が発生します。のような関数の一貫した動作を定義する際に、 FindEnクロージングHalfOpenInterval.
型変換
1 つのアプローチは、スライスをある型から別の型に変換することです。これは、新しいスライスを作成し、それぞれを反復的に変換することで対処できます。 element.
Composition
別のアプローチは、共通の動作が基本構造体に実装され、特定の型によって継承される合成です。これには、ClockInterval と PeriodInterval に個別の型を作成することが含まれます。それぞれの型には、基本構造体を介して同じ共通動作を実装するソート関数と GetEnクロージングInterval 関数が含まれます。
合成の利点
合成の利点include:
構成の欠点
正しいアプローチの選択
型変換と合成のどちらを選択するかは、コードの特定のユースケースと制約によって異なります。変換されたスライスから要素に直接アクセスする必要がある場合は、型変換の方が適している可能性があります。基礎となるスライスに直接アクセスする必要がなく、共通の動作を複数の型間で共有する必要がある場合は、コンポジションの方が良いオプションです。
異なる型のコードの重複を避けて Go で過度に一般化すると、そうでない可能性があることに注意することが重要です。常に最も効果的なアプローチであること。特定のタイプのコードを複製すると、コードの明確さと保守性が向上する場合があります。
以上が型変換と合成: さまざまな型を持つスライスのコレクションを最もよく処理するアプローチはどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。