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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-20 00:25:09648ブラウズ

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

スライス内の要素の位置の検索

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。