Menukar Array kepada Slice dalam Go
Apabila bekerja dengan tatasusunan dan hirisan dalam Go, mungkin terdapat keadaan di mana anda perlu menukar tatasusunan kepada kepingan untuk diproses selanjutnya. Sebagai contoh, anda mempunyai fungsi yang mengembalikan tatasusunan tetapi fungsi lain memerlukan kepingan sebagai parameter input.
Untuk menangani keperluan ini, adalah mungkin untuk menukar tatasusunan kepada kepingan menggunakan tatasusunan ungkapan kepingan[: ]. Ungkapan ini berkesan mencipta pengepala hirisan yang menghala ke tatasusunan asas tanpa membuat salinan data.
Berikut ialah contoh yang menunjukkan cara anda boleh mencapai ini:
func Foo() [32]byte { return [32]byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'} } func Bar(b []byte) { fmt.Println(string(b)) } func main() { x := Foo() Bar(x[:]) }
Dalam contoh ini, fungsi Foo mengembalikan tatasusunan 32 bait, mewakili digit '0' kepada 'f'. Fungsi Bar menerima sekeping bait dan mencetak perwakilan rentetannya.
Apabila anda memanggil Bar(x[:]), anda sedang mencipta pengepala hirisan yang merujuk tatasusunan asas x tanpa menyalin data. Ungkapan [:] pada asasnya mencipta kepingan yang bermula pada permulaan dan berakhir pada elemen terakhir tatasusunan.
Adalah penting untuk ambil perhatian bahawa penukaran ini tidak mencipta salinan data asas, tetapi sebaliknya memberikan pandangan atau rujukan yang berbeza kepada data yang sama. Ini amat berguna apabila anda perlu menghantar data antara fungsi tanpa membuat salinan yang tidak diperlukan.
Atas ialah kandungan terperinci Bagaimana Saya Menukar Go Array kepada Slice?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!