go slice
2015-12-12 15:46
323 查看
1.前言
转载请注明出处http://blog.csdn.net/wangguoyang429883793/article/details/50275401游戏开始选人 -random
2.实战
1.定义:
slice:在很多应用场景中,数组并不能满足我们的需求。在初始定义数组时,我们并不知道需要多大的数组,因此我们就需要“动态数组”。在Go里面这种数据结构叫,slice.2.初始化:
直接初始化:slice := []int{1,2,3} //和数组的初始化基本相同,只是去掉了长度。
从数组或slice初始化:
arr := [5]int{1,2,3,4,5} aslice := arr[:3] // 0-3 包含: arr[0],arr[1],arr[2] bslice := arr[3:] // 3-5 包含: arr[3],arr[4] cslice := arr[:] // 0-5 包含: arr[0],arr[1],arr[2],arr[3],arr[4] dslice := cslice[1:3] //从slice初始化
make初始化:
slice := make([]int, 5, 5) // 参数: 1.slice的类型,2.len 长度,3.cap容量(len和cap的区别在下面说)
3.方法:
增加元素 append:slice := make([]int, 5, 5) //初始化 aslice := append(slice, 6) // 一个 bslice := append(slice,7,8) // 多个
值的变化
理解:len是真实长度 cap是最大容量
len < cap 会改变旧值
package main import ( . "fmt" ) func main() { slice := make([]int, 5, 8) aslice := append(slice, 6) aslice[0] = 10 Printf("slice = %v \n aslice= %v", slice[0], aslice[0]) }
结果:
slice = 10 aslice= 10成功: 进程退出代码 0.
说明:
增加一个元素,len < cap aslice[0]的改变会导致slice[0]的改变。因为slice还没有达到cap
当增加后的len > cap时,不会改变旧值
package main import ( . "fmt" ) func main() { slice := make([]int, 5, 8) aslice := append(slice, 6, 7, 8, 9) aslice[0] = 10 Printf("slice = %v \n aslice= %v", slice[0], aslice[0]) }
结果:
slice = 0 aslice= 10成功: 进程退出代码 0.
说明:
slice[0]的值并没有因为aslice[0]的改变而改变。
此时将动态分配新的数组空间。返回的slice数组指针将指向这个空间,而原数组的内容将保持不变;其它引用此数组的slice则不受影响。
其他方法:
len 获取slice的长度
cap 获取slice的最大容量
append 向slice里面追加一个或者多个元素,然后返回一个和slice一样类型的slice
copy 函数copy从源slice的src中复制元素到目标dst,并且返回复制的元素的个数
3.总结
比赛结束,加分。 欢迎批评,吐槽,点赞,留言。相关文章推荐
- SQLSERVER 中GO的作用详解
- Array.prototype.slice 使用扩展
- js substr、substring和slice使用说明小记
- JavaScript使用slice函数获取数组部分元素的方法
- javascript中String类的subString()方法和slice()方法
- JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
- javascript Array.prototype.slice的使用示例
- javascript Array.prototype.slice使用说明
- 在Go语言程序中使用gojson来解析JSON格式文件
- 举例详解Go语言中os库的常用函数用法
- Go语言中函数的参数传递与调用的基本方法
- 深入解析Go语言的io.ioutil标准库使用
- GO语言的IO方法实例小结
- Go语言的os包中常用函数初步归纳
- Go语言中数组的基本用法演示
- GO语言类型转换和类型断言实例分析
- 深入解析Go语言编程中的递归使用
- 初步解读Golang中的接口相关编写方法
- Go语言实现的最简单数独解法
- 详解Golang编程中的常量与变量