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

  • 为什么要用切片?

    • 数组容量固定,不能自动扩展;
    • 值传递,数组作为函数传参的时候,将整个数据值拷贝一份给形参。
  • 切片本质:不是一个数组的指针,是一种数据结构,用来操作数组内部元素。切片名[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
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值