Bagaimanakah saya boleh membongkar kepingan dalam Go Like Python?

Susan Sarandon
Lepaskan: 2024-11-12 21:50:02
asal
856 orang telah melayarinya

How Can I Unpack Slices in Go Like Python?

Menyingkap Misteri Pembongkaran Array dalam Go

Pendekatan elegan Python terhadap pelbagai tugasan daripada tatasusunan telah membuatkan ramai pembangun Go mendambakan penyelesaian yang serupa . Walaupun Go mungkin tidak menawarkan persamaan langsung, terdapat pelbagai strategi untuk mencapai pembongkaran kepingan pada tugasan.

Go vs. Python

Tidak seperti Python, sintaks tugasan Go tidak menyokong pembongkaran langsung kepingan. Ini menimbulkan cabaran apabila cuba untuk menetapkan berbilang nilai yang dikembalikan oleh operasi pisah, seperti dalam contoh:

x := strings.Split("foo;bar", ";")
a, b := x[0], x[1]
Salin selepas log masuk

Penyelesaian

Untuk mengatasi had ini, pelbagai pendekatan wujud :

1. Fungsi Nyahpek Tersuai:

Tentukan fungsi tersuai untuk mengendalikan pembongkaran, mengembalikan berbilang nilai:

func splitLink(s, sep string) (string, string) {
    x := strings.Split(s, sep)
    return x[0], x[1]
}
Salin selepas log masuk

Fungsi ini kemudiannya boleh digunakan seperti berikut:

name, link := splitLink("foo\thttps://bar", "\t")
Salin selepas log masuk

2. Argumen Penunjuk Variadic:

Gunakan fungsi dengan argumen penuding variadic untuk membongkar kepingan:

func unpack(s []string, vars... *string) {
    for i, str := range s {
        *vars[i] = str
    }
}
Salin selepas log masuk

Yang membenarkan sintaks berikut:

var name, link string
unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
Salin selepas log masuk

Sementara penyelesaian ini menyediakan penyelesaian, perlu diingat bahawa Go tidak menyokong pembungkusan/pembongkaran umum seperti yang dilaksanakan dalam Python. Pilihan pendekatan bergantung pada kes penggunaan khusus dan kebolehbacaan yang diingini.

Atas ialah kandungan terperinci Bagaimanakah saya boleh membongkar kepingan dalam Go Like Python?. 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