slice 和 array
array 在 golang 中比较少见,使用更多的是 slice,array 不同于 java,指的是定长的数组:
|
|
对于 array,其长度是类型的一部分,上述代码的输出是:
除了直接赋值外,也可以使用 var 来声明,使用 var 是仅声明,初始化值为默认的 0 ,比如:
var arr [10]int
总结下,array 是定长的数组,且长度是类型的一部分,所以 [5]int 和 [6]int 类型是不一样的,array 初始化时可以用类似:index:value 的格式,这个表示 index 这个索引的值为 value,如果使用了这种格式,后续只能写 index+1 的值,举个例子:arr := […]int{1, 2, 4: 4, 5, 6, 7, 9: 9, 10} 表示这是一个长度为 10 的数组,且值为 1,2,0,0,4,5,6,7,0,9,10 4:4 表示 索引 4 的值为 4,它后面的 5 表示索引 5 的值为 5,如果需要跳着初始化这个功能也比较有用,比如 arr := […]int{1, 2, 9: 9} 则可以初始化 1,2,0,0,0,0,0,0,0,9
slice 是变长的数组,可以通过 append 来修改:
slice 切片只有 append,没有 delete remove 等方法,如果要删除元素,那么有两个办法:
1.通过 for 循环,将不需要删除的加入到新的 slice;
2.使用子切片的能力;比如 slices1 = slices1[1:] 这将删除第一个元素;
3.使用 slices.Delete(需要 golang 1.21 及以上版本)性能比 1、2 要更好;
最后更新于