Go语言学习笔记十一: 切片(slice)

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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值