区别
1.数组长度固定,切片长度可变
2.数组是深拷贝,切片是浅拷贝,切片是引用类型
扩容规则 不同版本不一样
https://www.jb51.net/article/280481.htm#_lab2_2_1
go1.18
1.如果期望容量大于当前容量的两倍就会使用期望容量;
2.如果当前切片的容量小于阈值(默认 256)就会将容量翻倍;
3.如果当前切片的容量大于等于阈值(默认 256),小切片的2倍生长,大切片生长1.25倍;
package main
import "fmt"
func main() {
arr1 := [3]int{
1, 2, 3}
arr2 := arr1
fmt.Printf("%p\n", &arr1[0])
fmt.Printf("%p\n", &arr2[0])
arr2[0] = 10
fmt.Println(arr1)
fmt.Println(arr2)
sli1 := []int{
1, 2}
sli2 := sli1
fmt.Printf("%p\n", &sli1[0])
fmt.Printf("%p\n", &sli2[0])
sli2[0] = 10
fmt.Println(sli1)
fmt.