Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Semak Keahlian Nilai dengan Cekap dalam Senarai Go?

Bagaimanakah Saya Boleh Semak Keahlian Nilai dengan Cekap dalam Senarai Go?

Susan Sarandon
Susan Sarandonasal
2024-12-02 01:08:10948semak imbas

How Can I Efficiently Check for Value Membership in Go Lists?

Menyemak Nilai Keahlian dalam Senarai dalam Go

Dalam Python, kata kunci dalam menyemak dengan mudah sama ada nilai wujud dalam senarai. Kefungsian serupa dalam Go memerlukan pendekatan yang sedikit berbeza.

Satu pilihan ialah menggunakan peta dengan kunci rentetan dan nilai integer. Walau bagaimanapun, pendekatan ini memerlukan penetapan nilai integer yang tidak digunakan, yang boleh menyusahkan.

Menggunakan Peta dengan Nilai Boolean

Penyelesaian yang lebih elegan melibatkan mencipta peta dengan rentetan kunci dan nilai boolean. Ketiadaan kunci dalam peta mengembalikan nilai boolean lalai palsu.

valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true}

if valid[x] {
    fmt.Println("found")
} else {
    fmt.Println("not found")
}

Mengoptimumkan dengan Slice

Jika anda mempunyai sejumlah besar nilai yang sah , pertimbangkan untuk menggunakan kepingan untuk memulakan nilai peta kepada benar:

for _, v := range []string{"red", "green", "yellow", "blue"} {
    valid[v] = true
}

Lebih pendek Permulaan Menggunakan Pemalar

Sebagai alternatif, anda boleh mencipta pemalar yang tidak ditaip atau boolean dan mengoptimumkan pemulaan selanjutnya:

const t = true
valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}

Dengan menggunakan salah satu teknik ini, anda boleh menyemak dengan cekap sama ada nilai terkandung dalam senarai dalam Go, menyediakan fungsi yang serupa dengan kata kunci Python.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Keahlian Nilai dengan Cekap dalam Senarai Go?. 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