一. 指定了长度的返回的是保存了数组的变量,属于值传递,发生赋值行为时会对原数组进行拷贝
二. 没有指定长度的返回的是数组的切片,是对数组的引用,内存中只保存了一份,发生赋值行为时,实际上是对数组地址的拷贝,内存中的数组还是只有一份
验证例子
arr := []int{1, 2, 3}
arr1 := [3]int{1, 2, 3}
p := arr
p1 := arr1
p[0] = 10
p1[0] = 11
fmt.Println(arr)
fmt.Println(p)
fmt.Println(arr1)
fmt.Println(p1)