1.切片是基于数组做的一层封装,灵活能够自动扩容。

2.切片的初始化方法

①直接创建

②基于已有的数组或切片

③使用make来创建一个切片

第一个5是切片的大小

第二个5是切片的容量

3.基本操作

①获取元素

②增加元素append

当达到底层的最大容量,切片会进行扩容,扩容的策略是翻倍扩容。

下图说明扩容之后,地址也变化了。

4.切片的修改

和数组(值传递)不一样,切片相当于是一个引用传递。

5.如果计算切片的容量?

例如:b切片的长度和容量是多少?

答案: 长度为2 容量为7

详细可以参考下面图,a、b共用底层切片,但是b是从1开始的,长度为3-1 =2,容量为a其他的底层

6.切片后面追加切片

func AppendSlice(){
slice1 := []int{1,2,3}
slice2 := []int{3,3,6} slice1 = append(slice1,slice2... ) for _, value := range slice1 {
fmt.Println("value的地址",value)
} }

注意一下 append(slice1,slice2... ) 这个...定义就是把slice2展开,放到slice1后面。

 

最新文章

  1. WPF 自定义Expander
  2. Hibernate创建hqll时报错
  3. P1038 神经网络
  4. join()、implode()函数
  5. 解决连接Oracle 11g报ORA-01034和ORA-27101的错误
  6. CollectionView添加头尾部
  7. 【转】VC++与MySQL数据库的连接
  8. [Oracle] Group By 语句的扩展 - Rollup、Cube和Grouping Sets
  9. [转] HTML5终极备忘大全(图片版+文字版)---张鑫旭
  10. APUE 读书笔记 -----孤儿进程与僵尸进程[总结] +数据结构+C
  11. python 学习笔记(一)
  12. cocos2d-x3.x屏蔽遮罩层屏蔽触摸button
  13. Andrew Ng机器学习课程笔记--week5(下)
  14. springboot(十九):使用Spring Boot Actuator监控应用
  15. 【Elasticsearch全文搜索引擎实战】之Kibana搭建
  16. Mybatis框架入门
  17. com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 报错问题
  18. LeetCode算法题-K-diff Pairs in an Array(Java实现)
  19. Spark源码剖析 - SparkContext的初始化(八)_初始化管理器BlockManager
  20. z-index注意事项

热门文章

  1. es6涉及的那点东西
  2. C#学习笔记之值类型与引用类型
  3. python之循环(增删)内使用list.remove()
  4. 3.SDL落地方案
  5. .NET Core 学习笔记3——EF Core
  6. Python使用Plotly绘图工具,绘制饼图
  7. 阿里云安装MySQL5.7
  8. 报错TypeError: $(...).live is not a function解决方法
  9. linux的常用命令介绍
  10. 牛津初阶字典单词F-联想故事