go学习笔记(8)复合类型(2)切片(1)

在这里插入图片描述

今天来梳理一下切片。

在go语言中,基本上任何需要保存一连串数据的地方都可以用切片。切片没有长度的限制。

切片与数组的操作相似。一对方括号加上类型就能定义一个切片了,看起来就像是在定义数组时没有写数组大小。

var x = []int{1, 2, 3}

指定某几个元素值,没指定的会置为零值:

var x = []int{1, 4: 5, 9: 10}

上述代码定义了一个大小为10的切片,其值为:[1 0 0 0 5 0 0 0 0 10]

定义切片的切片:

var x [][]int

使用方括号读写切片中的值:

x[0] = 123
fmt.Println(x[1])

如果定义切片时没有指定切片的内容,那这个切片会被置为切片的零值 nil

var x []int

在 go 语言中 nil 与其他语言的 null 类似,但也有一点点不同。nil 没有类型,也不是关键字或保留字。

切片是不能比较的,但它可以与 nil 进行比较:

fmt.Println(x == nil)
// 打印:true

go 语言几个内置的用于切片处理的函数:

len

使用 len 可以获取切片的长度。

var x = []int{1, 2, 3}
fmt.Println(len(x))
// 打印:[3]
append

使用 append 可以向切片追加元素:

var x []int
x = append(x, 123)
fmt.Println(x)
// 打印:[123]

append 至少要两个输入,一个切片,以及一个与该切片同类型的值。它会返回一个新的切片。
可以一次追加多个元素:

var x = []int{1, 2}
x = append(x, 3, 4, 5, 6)
fmt.Println(x)
// 打印:[1 2 3 4 5 6]

通过...操作符,一个切片可以被展开追加到加一个切片上:

var x = []int{7, 8, 9}
var y = []int{1, 2, 3}
x = append(x, y...)
fmt.Println(x)
// 打印:[7 8 9 1 2 3]

欢迎关注我的微信公众号 江达小记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江达小记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值