Open SyMind opened 1 year ago
Go 语言数组是一个固定长度的、容纳同构类型元素的连续序列,因此 Go 数组类型具有两个属性:元素类型和数组长度。
Go 数组是值语义的。
可以称切片是数组的『描述符』。下面是切片在 Go 运行时中的内部表示:
type slice struct { array unsafe.Pointer len int cap int }
创建切片实例:
s := make([]byte, 5)
可以通过语法 u[low:high] 创建对已存在数组进行操作的切片,这被称为数组的切片化(slicing):
u := [10]byte{11, 12, 13, 14, 15, 16, 17, 18, 19, 20} s := u[3:7]
还可以通过语法 s[low:high] 基于已有切片创建新的切片,这被称为切片的 reslicing。
Go 语言数组是一个固定长度的、容纳同构类型元素的连续序列,因此 Go 数组类型具有两个属性:元素类型和数组长度。
Go 数组是值语义的。
可以称切片是数组的『描述符』。下面是切片在 Go 运行时中的内部表示:
创建切片实例:
可以通过语法 u[low:high] 创建对已存在数组进行操作的切片,这被称为数组的切片化(slicing):
还可以通过语法 s[low:high] 基于已有切片创建新的切片,这被称为切片的 reslicing。