Go-切片(Slice)

切片(Slice)

切片是 Go 语言中基于数组的一种动态大小的序列。与数组不同,切片的长度可以在运行时动态改变。切片比数组更常用,因为它们更灵活且功能强大。

切片可以进行的操作

  • 访问元素:通过索引 [] 访问切片中的元素。
  • 修改元素:通过索引 [] 可以修改切片中的元素。
  • 获取长度和容量:使用 len() 获取切片的当前长度,使用 cap() 获取切片的容量。
  • 切片操作:可以通过 [:] 从现有切片创建子切片。
  • 添加元素:使用 append() 向切片中追加元素,切片长度会自动扩展。
  • 遍历切片:通过 for 循环或 range 遍历切片中的元素。

示例代码

// 定义切片
var s []int = []int{1, 2, 3}

// 访问和修改元素
firstElement := s[0]   // 访问元素,结果为 1
s[1] = 10             // 修改第二个元素,切片变为 [1, 10, 3]

// 获取长度和容量
length := len(s)       // 长度为 3
capacity := cap(s)     // 容量可能大于 3,取决于切片的底层数组

// 切片的切片
subSlice := s[1:3]     // 结果为 [10, 3]

// 向切片追加元素
s = append(s, 4)       // 结果为 [1, 10, 3, 4]

// 遍历切片
for i := 0; i < len(s); i++ {
    fmt.Println(s[i])
}

// 使用 range 遍历
for index, value := range s {
    fmt.Printf("Index: %d, Value: %d\n", index, value)
}

特别注意

  • 切片的容量和长度:切片的长度是当前元素的数量,而容量是从切片的起始位置到底层数组末尾的元素个数。追加元素时,如果超出容量,切片会自动扩容。
  • 共享底层数组:多个切片可能共享同一个底层数组,对一个切片的修改可能会影响另一个切片。

总结

  • 切片是基于数组的动态序列,支持动态扩展长度。
  • 可以使用 append() 轻松向切片添加元素,通过 len()cap() 获取其长度和容量,适合处理动态数据集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悟生啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值