ホームページ > バックエンド開発 > Golang > Go スライス内の要素の位置を効率的に見つけるにはどうすればよいですか?

Go スライス内の要素の位置を効率的に見つけるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-23 16:19:10
オリジナル
308 人が閲覧しました

How Can I Efficiently Find the Position of an Element in a Go Slice?

スライス内の要素の位置を決定する

スライス内の要素の位置を決定することは、思っているほど簡単ではありません。これは、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート