Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencapai Fungsi Pemahaman Senarai Python dalam Go?

Bagaimana untuk Mencapai Fungsi Pemahaman Senarai Python dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 20:10:021016semak imbas

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)]

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)
}

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))

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!

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