🎯 什么是切片?
切片是 Go 中非常核心的一种 动态数组 类型,可以存储任意个数的元素,而且可以随时扩容。
它是对数组(array)的一种更灵活的封装,使用得比数组多得多。
✅ 切片 vs 数组
概念 | 数组(array) | 切片(slice) |
---|---|---|
长度 | 固定 | 动态,可自动增长 |
声明 | [3]int{1, 2, 3} | []int{1, 2, 3} |
用途 | 较少使用 | 用于存储一组动态数据,使用最广泛 |
🧱 示例 1:创建切片(字面量)
go
package main
import "fmt"
func main() {
nums := []int{10, 20, 30}
fmt.Println(nums)
}
输出:
[10 20 30]
🧱 示例 2:创建空切片并添加元素(使用 append
)
go
package main
import "fmt"
func main() {
var names []string // 空切片
names = append(names, "Tom")
names = append(names, "Alice")
names = append(names, "Bob")
fmt.Println(names) // [Tom Alice Bob]
}
🧪 示例 3:使用 for 循环遍历切片
go
package main
import "fmt"
func main() {
nums := []int{5, 10, 15}
for i, v := range nums {
fmt.Printf("第 %d 个元素是 %d\n", i, v)
}
}
输出:
第 0 个元素是 5
第 1 个元素是 10
第 2 个元素是 15
🧠 总结切片核心操作:
操作 | 示例 |
---|---|
创建 | s := []int{} |
添加元素 | s = append(s, value) |
访问元素 | s[0] |
遍历 | for i, v := range s { ... } |
长度 | len(s) |
✅ 小练习(你来做)
请你写一个程序,要求如下:
-
创建一个空的
[]string
类型的切片 -
让用户输入名字(例如 3 次),每次 append 到切片里
-
最后用
for
循环打印出所有名字
🎯 输出类似:
请输入名字:Tom
请输入名字:Alice
请输入名字:Bob
你输入的名字有:
1. Tom
2. Alice
3. Bob
不要害羞,将你的结果打在评论区里,大家一起学习进步!!!