1. Slice 是什么?
Slice 是 Go 语言中的一种类似数组的数据结构,是对数组的一个封装。
和数组相比,slice 的长度是可以动态变化的,可以通过内置函数 append
来动态增加切片的长度。
2. Slice 的注意事项和常见错误以及陷阱
2.1. 未初始化的切片
未初始化的切片是 nil,对其进行操作会导致运行时错误。
package main
import "fmt"
func main() {
var fruits []string
// fruits[0] = "🍎" // 这会导致运行时错误:panic: runtime error: index out of range [0] with length 0
// 正确做法1:初始化切片
fruits := make([]string, 1)
fruits[0] = "🍎"
// 正确做法2:使用字面量初始化切片
fruits := []string{"🍎"}
// 正确做法3:使用 append 函数初始化切片。(如果不是特别注重性能,这种方式是最简单的。)
fruits = append(fruits, "🍎")
}