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

Bagaimana untuk Mencapai Fungsi Pemahaman Senarai Python dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-19 04:20:02576semak imbas

How to Achieve Python List Comprehension Functionality in Go?

Setara Pemahaman Senarai Python dalam Go

Pemahaman senarai Python menyediakan cara ringkas untuk menapis dan mengubah jujukan. Dalam Go, fungsi penapis boleh digunakan untuk mencapai fungsi yang serupa. Walau bagaimanapun, untuk gelung mungkin menawarkan pendekatan yang lebih cekap dan mudah.

Untuk menghasilkan semula pemahaman senarai Python:

array = [a for a in anotherArray  if (some condition)]

Dalam Go, anda boleh menggunakan fungsi penapis berikut:

import (
    "fmt"
    "math"
    "math/big"
)

func main() {
    anotherArray := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    newArray := filter(anotherArray, func(a int) bool {
        return a%2 == 0
    })
    fmt.Println(newArray) // [2 4 6 8]
}

Fungsi penapis mengambil dua hujah: urutan untuk ditapis dan fungsi predikat yang menentukan elemen yang hendak disertakan. Ia mengembalikan kepingan yang mengandungi hanya elemen yang memenuhi predikat.

Untuk ungkapan yang lebih kompleks, anda boleh menggunakan fungsi lambda, sama seperti contoh Python:

min := func() *big.Int {
    a := big.NewInt(0)
    return a
}()
for i := 0; i < n; i++ {
    for j := i; j < n; j++ {
        potentialMin := big.NewInt(0)
        potentialMin.Abs(a[i].Sub(a[i], b[j]))
        if potentialMin.Cmp(min) == -1 {
            min = potentialMin
        }
    }
}

Walau bagaimanapun, GoDoc untuk perpustakaan penapis menasihatkan bahawa untuk gelung adalah lebih cekap dan lebih baik daripada pakej. Oleh itu, untuk kesederhanaan dan kebolehbacaan, penggunaan untuk gelung adalah disyorkan.

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