Go语言学习笔记之基础概念——切片

Go语言学习笔记之基础概念——切片,第1张

  • 为什么要用切片?

    • 数组容量固定,不能自动扩展;
    • 值传递,数组作为函数传参的时候,将整个数据值拷贝一份给形参。


  • 切片本质:不是一个数组的指针,是一种数据结构,用来 *** 作数组内部元素。


    切片名[low,high,max]->low:起始下标位置;high:结束下标位置;len:high-low;cap:max-low。


  • 创建切片:make([]type,len,cap);*make([]type,len)*;自动推导类型创建切片;

    注:make函数只能创建slice,map和channel,并且返回一个有初始值(非零)的对象;

  • 切片传参为传引用;

  • 向切片增加元素时,切片容量会自动增长,1024以下,以2倍速度增长;

  • copy(目标切片,源切片),对每个位置进行覆盖 *** 作;

  • 创建方式:

    • var m map[int]string ->不能存储数据,=nil
    • m := map[int]string{}->能存储数据,=[]
    • m:=make(map[int]string)
    • m:=make(map[int]string,容量)
  • 用截取数组(切片)的方式初始化切片时,切片容量跟随原数组(切片);

   type slice struct {
             array unsafe.Pointer
             len int
             cap int
        }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/634729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-16
下一篇 2022-04-16

发表评论

登录后才能评论

评论列表(0条)

保存