Bagaimana untuk Mencapai Fungsi Pemahaman Senarai Python dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-10 20:10:02
asal
1015 orang telah melayarinya

How to Achieve Python's List Comprehension Functionality in Go?

Setara Pemahaman Senarai Python dalam Go

Dalam siaran ini, kami meneroka cara untuk meniru pemahaman senarai Python dalam Go, khususnya sintaks:

array = [a for a in anotherArray if (some condition)]
Salin selepas log masuk

Menggunakan Pustaka Penapis

Go menawarkan penapis perpustakaan yang dicadangkan oleh Rob Pike. Pustaka ini menyediakan fungsi Choose() yang mengambil kepingan dan fungsi boolean sebagai argumen. Ia mengembalikan kepingan baharu yang mengandungi hanya elemen yang memenuhi syarat yang ditentukan.

Contohnya:

import "google.golang.org/x/exp/slices"

func TestChoose(t *testing.T) {
    a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    expect := []int{2, 4, 6, 8}
    result := slices.Choose(a, isEven)
}
Salin selepas log masuk

Kaveat Pustaka Penapis

Sementara pustaka penapis menawarkan kemudahan penyelesaian, dokumentasi rasminya menasihatkan agar tidak digunakan, kerana kecekapannya yang berkurangan berbanding dengan gelung eksplisit.

Untuk Gelung sebagai Alternatif

Dokumentasi Go mengesyorkan penggunaan untuk gelung sebagai alternatif untuk menyenaraikan pemahaman. Mereka menawarkan penyelesaian yang lebih cekap, terutamanya dalam situasi di mana seseorang perlu mengawal susunan operasi atau mengehadkan penjanaan data.

Sebagai contoh, kod berikut mengira nilai minimum dalam gelung bersarang:

min := min(abs(a[i], b[j]) for i in range(n)
                          for j in range(i, n))
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Fungsi Pemahaman Senarai Python 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