スライス内の要素の位置の検索
Go のスライス内の要素の位置の決定は、汎用ライブラリ関数では対応できません。 Go の言語設計には、任意のスライス タイプに適用できる関数を定義するための簡単なアプローチがありません。
カスタム実装
コード サンプルに示すように、独自の関数を定義できます。このタスクを達成するために、あなたが指定したものは次のとおりです。
type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if v == value { return p } } return -1 }
この関数はスライスを反復処理し、各要素をスライスと比較します。指定された値。値が見つかった場合は、その位置が返されます。それ以外の場合は、-1 が返されます。
この関数は機能しますが、より短い範囲の構文を使用することで若干の改善が可能です:
func (slice intSlice) pos(value int) int { for i, v := range slice { if v == value { return i } } return -1 }
バイト スライスの代替
スライスにバイト要素が含まれている場合、bytes.IndexByte 関数を使用して位置を見つけることができます。特定のバイト値の。その構文は次のとおりです:
func IndexByte(s \[\]byte, c byte) int
以上がGo スライス内の要素の位置を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。