golang笔记
来源:互联网 发布:农村淘宝服务费如何扣 编辑:程序博客网 时间:2024/05/21 15:44
Slice
- Slice代表变长的序列,序列中每个元素都有相同的类型。语法和数组很像,只是没有固定长度。
- 引用类型 -> “动态数组”
- 从概念上来说,slice像一个结构体,这个结构体包含了三个元素:一个指针,指向数组中slice指定的开始位置;长度,即slice的长度;最大长度,也就是slice开始位置到数组的最后位置的参数
- 使用len()获取长度,cap()获取容量
- 可以直接创建或者从底层数组获取生成
- 索引不可以超过被slice的切片的容量cap()值
- 和声明array一样,只是少了长度
var fslice []int
。声明两个slice ->var aSlice,bSlice []byte
- 一般使用make()函数来创建切片
make([]T,len,cap),其中cap可以省略,则和len的值相同
make([]int,10,20)
- append() 返回一个新的切片。如果最终长度未亿加到sliice的容量则返回原始slice,如果超过追加到的sliice的容量则重新分配数组并拷贝原始数据
a := []int{1,2,3,4,5} s1 := a[2:5] s2 := a[1:3] fmt.Println(s1,s2) // s2 = append(s2,7,8,9) // 总长度已经超过cap,所以是一块新的内存区域,没有对原切片进行修改 // s2 = append(s2,7,8) // 总长度没有超过cap,所以对原切片进行了修改 fmt.Println(a) fmt.Println(s1)
copy(s1,s2)
s1是母体,s2是被复制的,把s2从s1的头部开始覆盖
s1 := []int{1,2,3} s := []int{9,8,7} s2 := append(s1,s...) //...相当于是把切片打散后传入 fmt.Println(s2)
阅读全文
0 0
- golang笔记
- golang笔记
- golang笔记
- Golang笔记
- GoLang学习基础笔记
- golang笔记-注释-标识符
- golang simplejson 使用笔记
- Golang学习笔记//序
- Golang Log 学习笔记
- golang ubuntu 安装笔记
- Golang学习笔记:常见问题
- golang类型系统笔记
- Golang学习笔记
- golang学习笔记
- golang--json使用笔记
- golang学习笔记
- golang ubuntu 配置 笔记
- golang学习笔记
- A Math Problem (广西邀请赛-重现赛)
- StringUtils中 isNotEmpty 和isNotBlank的区别
- 多线程编程
- Javascript立即执行函数
- 实现C++模板类头文件和实现文件分离的方法
- golang笔记
- Laravel指定表名的重要性
- 生成二维码 iOS
- java--文件复制FileInputStream FileOutputStream
- Spring利用DBCP获取数据源连接
- 屏蔽php显示错误信息+sql防注入常用函数
- UGUI研究院之Text文本渐变(十一)
- 2017中国(沈阳)国际润滑油脂、养护用品及技术设备展览会会刊(参展商名录)
- Arduino可穿戴教程之第一个程序——连接硬件选择板子(二)