Rumah >pembangunan bahagian belakang >Golang >Bagaimana Saya Boleh Cari Indeks Elemen dalam Go Slice?

Bagaimana Saya Boleh Cari Indeks Elemen dalam Go Slice?

Linda Hamilton
Linda Hamiltonasal
2024-12-11 21:07:11719semak imbas

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

Mencari Kedudukan Elemen dalam Slice

Menentukan kedudukan elemen dalam kepingan dalam Go boleh menjadi tugas yang berguna. Walau bagaimanapun, tidak seperti bahasa lain, tiada fungsi perpustakaan generik untuk melaksanakan operasi ini secara langsung.

Penyelesaian Tersuai

Satu pendekatan ialah mencipta fungsi tersuai khusus untuk jenis kepingan:

type intSlice []int

func (slice intSlice) pos(value int) int {
    for p, v := range slice {
        if v == value {
            return p
        }
    }
    return -1
}

Fungsi ini berulang pada elemen dalam kepingan, membandingkan setiap elemen dengan nilai yang sedang dicari. Jika padanan ditemui, kedudukan elemen dikembalikan.

Pertimbangan

Semasa fungsi tersuai anda berfungsi, adalah penting untuk ambil perhatian bahawa ia hanya akan berfungsi pada int hirisan. Jika anda perlu mencari nilai tertentu dalam hirisan jenis yang berbeza, anda perlu mencipta fungsi baharu khusus untuk jenis itu.

Kepingan Byte

Untuk kepingan bait, terdapat fungsi terbina dalam dipanggil bait.IndexByte yang boleh digunakan untuk mencari kedudukan nilai bait dalam slice:

package bytes

func IndexByte(s []byte, b byte) int

Kesimpulan

Menentukan kedudukan elemen dalam kepingan dalam Go memerlukan sama ada fungsi tersuai atau penggunaan bait.IndexByte untuk hirisan bait . Walaupun tiada fungsi perpustakaan generik untuk melaksanakan tugas ini untuk semua jenis kepingan, pendekatan tersuai menyediakan cara yang mudah untuk mencari elemen dalam jenis kepingan tertentu.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Cari Indeks Elemen dalam Go Slice?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn