一般的なコレクション スライスの動作のためのコードの最適化
クロックやピリオドなど、半開間隔のコレクションを操作するコンテキストでは、主な関心事は、両方のタイプの間隔について、指定された時間の周囲の間隔を見つけることです。この反復的なタスクでは、これらの間隔に共通の動作を定義する効率的な方法が必要です。 collections.
変換に関する考慮事項
1 つのアプローチには、あるタイプのスライスを別のタイプに変換することが含まれますが、推奨される方法は、新しいスライスを作成して各項目を明示的に変換することです。たとえば、ClockIntervals のスライスを次のように変換するには、 HalfOpenIntervals:
func ToIntervalsFromClockIntervals(clockIntervals []ClockInterval) HalfOpenIntervals { intervals := make(HalfOpenIntervals, 0, len(clockIntervals)) for _, clockInterval := range clockIntervals { intervals = append(intervals, clockInterval) } return intervals }
コンポジションの利用
別のアプローチは、コードの重複を避けるためにコンポジションを利用することです。基本構造体 BasicInterval を作成します。これには、並べ替え関数と GetEnクロージングインターバル関数の実装が含まれます。 ClockIntervals と PeriodIntervals は BasicInterval を継承し、内部スライスを指す便利なメソッドを持っています。
過度の一般化を避ける
過度に一般化すると複雑さが増し、Go のコードの可読性が低下する可能性があることに注意することが重要です。場合によっては、一部の重複を受け入れる方が現実的である可能性があります。このアプローチにより、多くの場合、長期的にはよりクリーンで保守性の高いコードが得られます。
以上がさまざまなコレクション型の囲み間隔を見つけるために Go コードを最適化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。