go(golang)之slice的小想法1
slice,是go中一个很重要的主题。我们不用切片来表述,因为这里的切片特指的是数组的切片。 先给slice下个定义吧:
从一个字符串中构建了一个子字符串或者从一个数组中构建一个切片,并且把这个子字符串或是这个切片的指针赋给这个slice.换句话说slice就是指向某个字符串或者某个数组的一个指针。 表面上来看,slice是一种与array很相似的东西,但是两者之间最大的区别是array是定长的而slice可以更改其长度。 slice的基本语法:1a[low : high]
2 切片的省略写法
a[2:] // same as a[2 : len(a)] a[:3] // same as a[0 : 3] a[:] // same as a[0 : len(a)] 3slicer := make([]int,10) 可以通过make来新建一个slice,第一个参数是slice中的元素类型,第二个参数是这个slice的容量。 slice的实现原理当我们创建了一个slice的时候会发生以下的事情:
这里的指针其实就是指向了slice索引值start值对应的数组元素的位置的地址。
结果: 0x220822bf08//原始数组地址 [4/5]0x220822bf08//对应切片a[0:4]地址 [3/4]0x220822bf10//对应切片a[1:4]地址 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |