Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh membongkar kepingan dalam 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]
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] }
Fungsi ini kemudiannya boleh digunakan seperti berikut:
name, link := splitLink("foo\thttps://bar", "\t")
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 } }
Yang membenarkan sintaks berikut:
var name, link string unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
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!