1 回答
TA贡献1883条经验 获得超3个赞
Go 中的数组是固定大小的:一旦你在 Go 中创建了一个数组,以后就不能改变它的大小。这是这样一种程度,即一个阵列的长度是阵列类型的一部分(这意味着类型[2]int和[3]int2层不同的类型)。也就是说,某些数组类型的值的长度总是相同的,并且由其类型决定。例如,类型[100]int为的数组值的长度始终为100,(可以使用内置函数进行查询len())。
规格:数组类型:
长度是数组类型的一部分;它必须评估为可由 type 值表示的非负常量int。a可以使用内置函数len发现数组的长度。
如果您正在寻找“设置了多少元素?”的答案,Go 中不会跟踪该问题。您要查找的“数组中的总项数”也始终与数组长度相同:当您在 Go 中创建数组时,数组中的所有元素都被初始化为元素类型的零值(除非另有说明)例如,通过使用复合文字)。
例如在这一行之后:
var arr [100]int
该数组arr已经有 100int秒,全部都是0(因为这是 type 的零值int)。在以下行之后:
var arr2 = [3]int{1, 2, 3}
该阵列arr2具有3个int元素,是1,2和3。在以下行之后
var arr3 = [...]bool{3: true}
阵列arr3有4个bool元素,感false,false,false和true(false是类型的零值bool,我们只指定的第四元件是true其在索引3)。
如果您询问切片,您的问题可能更有意义:
切片是底层数组的连续段的描述符,并提供对来自该数组的元素的编号序列的访问。
所以基本上切片是数组某些(连续)部分的“视图”。切片头或描述符包含指向它在数组中描述的部分的第一个值的指针,它包含长度和容量(这是长度可以扩展到的最大值)。
- 1 回答
- 0 关注
- 629 浏览
添加回答
举报