Bagaimanakah Saya Boleh Semak Keahlian Senarai dengan Cekap dalam Go?

Patricia Arquette
Lepaskan: 2024-11-27 16:30:14
asal
112 orang telah melayarinya

How Can I Efficiently Check List Membership in Go?

Semak Senarai Keahlian dalam Go: Alternatif kepada Kata Kunci "in" Python

Dalam Python, kata kunci "in" menyediakan kata kunci yang mudah cara untuk menyemak sama ada nilai wujud dalam senarai. Go, walau bagaimanapun, tidak menawarkan persamaan langsung.

Menghampirkan Kata Kunci "dalam" dengan Peta

Satu pendekatan dalam Go ialah memanfaatkan peta[rentetan] bool sebagai perwakilan set. Dengan menyimpan nilai yang sah sebagai kunci dan memberikan nilai sebenar, anda boleh menguji keahlian dengan menyemak sama ada kunci terdapat dalam peta:

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

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

Menggunakan Nilai Sifar

Ambil kesempatan daripada fakta bahawa apabila kunci tidak ditemui dalam peta, nilai sifar untuk bool (palsu) dikembalikan. Ini membolehkan anda mengetepikan penetapan nilai sebenar yang jelas, memudahkan pemulaan:

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

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

Pengoptimuman

Untuk senario dengan sejumlah besar nilai yang sah, pertimbangkan untuk menggunakan a untuk gelung julat untuk memulakan peta. Ini menyediakan penyelesaian padat:

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

Selain itu, anda boleh mengoptimumkan kod dengan mentakrifkan pembolehubah const untuk mengelakkan nilai boolean berulang:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Keahlian Senarai dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan