在 Go 中使用數組和切片時,了解它們的差異非常重要。陣列是固定大小的資料結構,而切片是可變大小的並且更靈活。
在給定的範例中,您嘗試將 32 位元組 ([32]byte) 的固定大小數組轉換為可變大小的切片([]位元組)。但是,直接使用 b := []byte(a) 嘗試此操作將導致編譯錯誤。
要成功將固定大小的陣列轉換為可變大小的切片,遵循以下語法:
b := a[:]
透過使用語法a[:],您可以建立一個引用底層數組元素的切片。這稱為“切片”數組。產生的切片 b 將具有與原始數組 a 相同的元素,但其行為類似於可變大小的切片,允許您動態修改其長度。
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 }
以上是在 Go 中如何將固定大小的陣列轉換為可變大小的切片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!