首页  

go 数组和切片     所属分类 go 浏览量 496
切片 指针类型,数组 值类型
数组 长度固定 ,切片 是 动态数组
切片的底层是数组


package main import ( "fmt" "reflect" ) func main() { arr1 := [2]int{1, 2} arr2 := [2]int{1, 2} arr3 := [...]int{1, 2} fmt.Println(reflect.TypeOf(arr1).Kind()) // array fmt.Println(arr1 == arr2) // true fmt.Println(arr1, arr2, arr3) fmt.Println(len(arr1), cap(arr2)) // 2 2 slice1 := arr1[:] slice2 := arr2[:] fmt.Println(reflect.TypeOf(slice1).Kind()) // slice fmt.Println(slice1, slice2) fmt.Println(len(slice1), cap(slice2)) // 2 2 // 切片之间不能进行等值判断,只能和nil判断 // invalid operation: slice1 == slice2 (slice can only be compared to nil) // fmt.Println(slice1 == slice2) var slice3 []int // nil slice4 := []int{} // empty , not nil slice5 := []int{1, 2, 3} fmt.Println(slice3 == nil) // true fmt.Println(slice4 == nil) // false slice3 = append(slice3, 1) var slice6 = make([]int, 3) fmt.Println(len(slice6), cap(slice6)) // 3 3 var slice7 = make([]int, 3, 5) fmt.Println(len(slice7), cap(slice7)) // 3 5 fmt.Println(slice3, slice4, slice5, slice6, slice7) for index := range slice7 { fmt.Println(index) } for index, value := range slice7 { fmt.Println(index, value) } }
https://gitee.com/dyyx/hellocode/blob/master/demo/go/arr-and-slice/main.go

上一篇     下一篇
余杭护国山

职场暗语

GO 快速教程

高庄宸迹

go make 用法

go new