数组
package main
import "fmt"
func test(arrp *[3]int){
arrp[1] = 5
fmt.Println(arrp)
}
func main() {
// 定义数组方式一
var arr1 = [3]int{}
// 定义数组方式二
var arr2 = [3]int{1,2,3}
// 定义数组方式三
var arr3 = [3]int{1:10}
fmt.Println("arr1",arr1)
fmt.Println("arr2",arr2)
fmt.Println("arr3",arr3)
// 遍历
for index,value := range arr2{
fmt.Printf("index:%d,value:%d\n",index,value)
}
// 指针数组 数组元素为指针
// 数组指针 指向数组的指针
var arrp *[3]int
arrp = &arr2
fmt.Println(arrp)
test(arrp)
fmt.Println(arrp)
}
切片
package main
import "fmt"
func main() {
// 切片长度不固定,可以自动扩容
// 定义切片方式一
var arr1 = []int{}
// 定义切片方式二
var arr2 = []int{1,2,3}
// 定义切片方式三
var arr3 = make([]int,5)
// 定义切片方式四 长度5 容量10
var arr4 = make([]int,5,10)
fmt.Println("arr1",arr1)
fmt.Println("arr2",arr2)
fmt.Println("arr3 长度 len(arr3)",len(arr3))
fmt.Println("arr4 容量 cap(arr4)",cap(arr4))
// 添加元素
arr2 = append(arr2,4)
fmt.Println("arr2 添加元素4",arr2)
// 切片复制
a := []int{1,2,3}
b := make([]int,3)
copy(b,a)
fmt.Println("a的值复制给b copy(b,a) a",a,"b",b)
b = make([]int,2)
copy(b,a)
fmt.Println("a的值复制给b len(b)<len(a) a",a,"b",b)
b = make([]int,4)
copy(b,a)
fmt.Println("a的值复制给b len(b)>len(a) a",a,"b",b)
b = make([]int,0)
copy(b,a)
fmt.Println("a的值复制给b len(b)=0 a",a,"b",b)
}
参考
https://github.com/datawhalechina/go-talent/blob/master/5.数组、切片.md