スライス内の要素の位置を決定する
スライス内の要素の位置を決定することは、思っているほど簡単ではありません。これは、Go にはこの目的のための汎用ライブラリ関数がないことが原因です。
これに対処するには、以下のようなカスタム関数を作成できます。
type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if (v == value) { return p } } return -1 }
この関数はスライスを反復処理します。 range を使用して、要素の値がターゲット値と一致するかどうかを確認します。一致するものが見つかった場合は、インデックスが返されます。
残念ながら、このアプローチは任意のスライスには理想的ではありません。 Go の型システムは、関数がさまざまな型のスライスを操作するための単純なメカニズムを提供しません。
特にバイト スライスの場合は、bytes.IndexByte 関数を使用できます。この関数は、バイト スライス内で最初に出現したバイト値のインデックスを返します。
以上がGo スライス内の要素の位置を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。