切片
切片的低层是数据,类型与 C++ 的 stl 容器,用起来会比较直接用原生的数据更加友好一些。 总的来说 go 语言中的切片,更像是其它语言中的动态数组。
根据数组创建切片
如果数组已经存在了,那我们可以直接在数组上创建切片。
package main
import "fmt"
func main() {
var arr = [4]int{100, 200, 300, 400}
// 基于数据创建切片
var sli = arr[0:2]
fmt.Printf("type of arr = %T, type of sli = %T \n", arr, sli)
}
make 创建切片
如果低层的数据根本不存在,那么我们也可以直接用 make 来创建切片,这种情况下我们完全不用感知低层的数组。
package main
import "fmt"
func main() {
// 初始为一个长度为 3 的切片
var sli = make([]int, 3)
fmt.Printf("type of sli = %T , cap = %d, len = %d \n", sli, cap(sli), len(sli))
// 默认所有的元素值都是 0
for _, value := range sli {
fmt.Println(value)
}
}