Rumah >pembangunan bahagian belakang >Golang >Bagaimana Pergi Semak Keahlian Elemen Tanpa Binaan 'jika x dalam'?

Bagaimana Pergi Semak Keahlian Elemen Tanpa Binaan 'jika x dalam'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 16:16:17174semak imbas

How Does Go Check for Element Membership Without an

Pendekatan Go untuk Konstruk "jika x dalam"

Go menawarkan pelbagai pendekatan untuk menyemak sama ada unsur wujud dalam tatasusunan atau menyemak keahlian. Walaupun ia tidak mempunyai binaan "jika x dalam" yang jelas seperti Python, ia menyediakan beberapa alternatif bergantung pada versi dan struktur data yang digunakan.

1. Menggunakan Slices.Contains (Go 1.18 and Later)

For Go 1.18 dan versi yang lebih baru, kaedah slices.Contains menawarkan penyelesaian langsung dan cekap. Ia memerlukan tatasusunan atau hirisan sebagai input dan menyemak sama ada elemen yang ditentukan ada.

arr := []string{"a", "b", "c"}
if slices.Contains(arr, "b") {
    // Element is present
}

2. Lelaran Atas Tatasusunan (Sebelum Pergi 1.18)

Sebelum Pergi 1.18, tiada operator terbina dalam untuk menyemak keahlian. Sebaliknya, fungsi tersuai boleh diwujudkan untuk mengulangi tatasusunan:

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}

3. Menggunakan Peta untuk Semakan Keahlian

Jika lelaran pada keseluruhan senarai tidak diingini, menggunakan peta dan bukannya tatasusunan atau kepingan boleh memberikan penyelesaian yang lebih cekap untuk semakan keahlian:

visitedURL := map[string]bool {
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL[thisSite] {
    fmt.Println("Already been here.")
}

Atas ialah kandungan terperinci Bagaimana Pergi Semak Keahlian Elemen Tanpa Binaan 'jika x dalam'?. 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