03.3.6 使用切片的代码示例
希望slices.go中的代码能够扫除你对切片所有的困惑,本节代码分为5个部分。
第一部分包含切片的定义以及初始值的说明:
第二部分展示了如何使用[:]
以数组创建切片。注意,[:]
操作只是将引用指向数组,并没有创建一份数组的拷贝:
第三部分代码使用make()
创建一个二维切片:
Go自动将切片的元素值初始化为对应切片类型的零值,例如int类型的零值是0
,切片的零值是nil
。记住,多维切片的元素类型是切片!
slices.go的第四部分,你将看到初始化二维数组的方法:
上述代码使用append()函数往切片中追加元素,切记不要使用不存在的索引值,否则你将看到panic:runtime error: index out of range
。
最后一部分代码展示了如何使用range
关键字打印二维切片的所有元素:
执行slices.go,你将看到如下输出:
$ go run slices.go
[1 2 3 4 5][0 0] [][-1 -2 -3 -4 -5] [-1 -2 -3 -4 -5]
[-1 -2 -3 -4 -100]
[0 0 0 0 0][[]
i: 0 value: 0 i: 1 value: 0
i: 0 value: 0 i: 1 value: 1
i: 0 value: 0 i: 1 value: 2
由于切片的零值是nil
,所以二维切片中的切片元素被初始化为nil
,打印出来就是空的。
Last updated