Go语言学习笔记十一: 切片(slice)
2018-03-03 17:19
946 查看
Go语言学习笔记十一: 切片(slice)
切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用。不像java语言写起来就比较繁琐。不过我觉得未来java语法也会支持的。定义切片
切片可以使用make函数来定义,也可以像变量声明一样创建个未指定大小的切片。var x []int = make([]int, 3); y := make([]int, 3); z := []int {1, 2, 3};
make有三个参数,第一个是类型(数组类型,所以带方括号),第二个是长度len,第三个是容量cap。长度好理解,就是值的多少。而容量就不好理解了,容量是为了自动扩容次数减少而设计的,为了减少扩容的次数,你可以上来就设置大些。
切片操作
s := arr[:] s := arr[1:2] s := arr[1:] s := arr[:2]
len() 和 cap() 函数
这个两个函数为了得到切片的len和cap的。空(nil)切片
一个切片在未初始化之前默认为 nil,长度为 0。append() 和 copy() 函数
append是往原有切片中增加元素。而copy是复制原有切片,如果不复制,那么修改新的切片内容,原有对应的元素也会被修改。var x []int x = append(x, 1); x = append(x, 2, 3, 4); y := make([]int, len(x), cap(x) * 2) copy(y, x);
相关文章推荐
- Go语言学习笔记十一: 切片(slice)
- Go语言学习笔记 --- slice切片
- Go语言学习笔记(四) [array、slice、map]
- Go语言学习笔记 -- array、slice和map
- Go语言学习笔记(四) [array、slice、map]
- Go语言学习笔记之数组、数组切片和map
- go语言学习笔记之slice用法
- Go语言学习笔记2——数组和Slice
- go语言学习笔记之slice用法
- Go语言学习笔记(四) [array、slice、map]
- go语言笔记——切片底层本质是共享数组内存!!!绝对不要用指针指向 slice切片本身已经是一个引用类型就是指针
- Go语言学习笔记(三)数组 & 切片 & map
- Go语言学习笔记 - 环境搭建
- Go语言学习笔记 --- 控制语句之if判断,循环语句for, switch语句和跳转语句
- Go语言学习笔记一: Hello World
- Go语言学习笔记三: 常量
- Go语言学习笔记六: 循环语句
- Go语言学习笔记 --- 关键字、注释、结构、包相关和可见性规则
- Go语言学习笔记八: 数组
- GO1.6语言学习笔记2-安装配置及代码组织