Skip to content

数组

类型 [n]T 表示一个数组,n 是数组长度,数组长度是固定的

go
var a [10]int

切片

[]T 表示一个元素类型为 T 的切片

切片并不存储任何数据,它只是描述了底层数组中的一段。

go
func main() {
	primes := [6]int{2, 3, 5, 7, 11, 13}

	var s []int = primes[1:4]
	fmt.Println(s)
    // [3 5 7]
}

a[low : high] 包括 low,但排除 high

切片默认值

go
var a [10]int

// 以下切片表达式等价
a[0:10]
a[:10]
a[0:]
a[:]

len 和 cap

len → 当前可用元素数量

cap → 最多能放多少元素

切片的默认值/零值

nil

go
func main() {
	var s []int
	fmt.Println(s, len(s), cap(s))
	if s == nil {
		fmt.Println("nil!")
	}
}

append

func append(s []T, vs ...T) []T

append 只能用于切片,切片是可以创建新切片,从而达到变化数组的效果

切片字面量