Rumah > pembangunan bahagian belakang > Golang > Adakah Go Mempunyai Setara dengan 'if x in' Python untuk Keahlian Array?

Adakah Go Mempunyai Setara dengan 'if x in' Python untuk Keahlian Array?

Susan Sarandon
Lepaskan: 2024-12-27 01:04:09
asal
141 orang telah melayarinya

Does Go Have an Equivalent to Python's

Cara Mencari Elemen Tatasusunan Seperti Konstruk "if x in" Python dalam Go

Dalam Python, anda boleh menyemak dengan mudah sama ada unsur wujud dalam tatasusunan menggunakan binaan "jika x dalam". Adakah Go menawarkan mekanisme yang sama untuk menyemak keahlian tatasusunan tanpa mengulangi keseluruhan tatasusunan?

Jawapan

Go tidak mempunyai persamaan langsung dengan "jika x in" Python bina untuk tatasusunan. Walau bagaimanapun, bermula dengan Go 1.18, anda boleh menggunakan fungsi slices.Mengandungi untuk kepingan untuk mencapai hasil yang serupa:

if slices.Contains(array, x) {
    // do something
}
Salin selepas log masuk

Pre-Go 1.18 Solution

Sebelum Pergi 1.18, tiada pengendali terbina dalam untuk menyemak keahlian tatasusunan. Anda perlu mengulangi tatasusunan dan menggunakan fungsi tersuai seperti berikut:

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

Pendekatan Alternatif: Peta

Untuk mengelakkan keperluan untuk lelaran, anda boleh gunakan peta dan bukannya tatasusunan atau kepingan:

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

Atas ialah kandungan terperinci Adakah Go Mempunyai Setara dengan 'if x in' Python untuk Keahlian Array?. 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