Apabila bekerja dengan tatasusunan dan kepingan dalam Go, adalah penting untuk memahami perbezaannya. Tatasusunan ialah struktur data bersaiz tetap, manakala kepingan bersaiz berubah-ubah dan lebih fleksibel.
Dalam contoh yang diberikan, anda cuba menukar tatasusunan saiz tetap 32 bait ([32]bait) kepada kepingan bersaiz berubah-ubah ([]bait). Walau bagaimanapun, mencuba ini secara langsung dengan b := []bait(a) akan mengakibatkan ralat kompilasi.
Untuk berjaya menukar tatasusunan saiz tetap kepada kepingan bersaiz berubah-ubah, ikut sintaks ini:
b := a[:]
Dengan menggunakan sintaks a[:], anda mencipta hirisan yang merujuk tatasusunan asas elemen. Ini dikenali sebagai "menghiris" tatasusunan. Potongan b yang terhasil akan mempunyai elemen yang sama seperti tatasusunan asal a tetapi akan berkelakuan seperti kepingan bersaiz berubah-ubah, membolehkan anda mengubah suai panjangnya secara dinamik.
package main import ( "fmt" ) func main() { var a [32]byte b := a[:] fmt.Println(len(b)) //prints 32, indicates the initial length of b matches array a b = b[5:] //slicing the slice b, modifies its length fmt.Println(len(b)) //prints 27, indicating the new length of b after slicing }
Atas ialah kandungan terperinci Bagaimanakah anda menukar tatasusunan bersaiz tetap kepada kepingan bersaiz berubah-ubah dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!