slice切片

引用类型

slice的语法和python的列表切片语法是类似的

var a = [10]int{1,2,3,4,5}
var slice1 = a[1:3]
var slice2 = [:]

slice同样适合使用len、cap等数组可使用的函数方法,但受限于数组,比如长度不可能超出原数组

更多数组切片操作:

s[n]    切片s中的索引位置为n的元素
s[:]
s[low:]
s[:high]
s[low:high]
s[low:high:max] 从切片s的索引位置low到high获得切片,len=high-low,cap=max-low
len(s)  切片长度
cap(s)  切片容量
data := [...]int{0, 1, 2, 3, 4, 5}

s := data[2:4]
s[0] += 100
s[1] += 200

fmt.Println(s)
fmt.Println(data)

输出:

[102 203]
[0 1 102 203 4 5]
左闭右开

参考切片内存地址:

回过头来看php的数组,对开发者太友好了,不需要记忆太多语法糖,学习成本低,看起来符合自然易理解,不用关心固定不固定长度,开发者想怎么处理数组就怎么处理,不用担心是不是会出错,出错的概率太低了,php的数组兼容性太强,表达出了简约不简单的理念。