我正在学习GoLang教程,有以下疑问:
arr1:=[...]int{1,2,3}
arr2:=arr1
arr1[1]=99
fmt.Println(arr1)
fmt.Println(arr2)
它输出以下语句:
[1 99 3]
[1 2 3]
仅修改数组a,这是有道理的,因为数组被视为值。
如果我尝试以下操作,会让事情变得混乱
a:=[...]int{1,2,3}
b:=a[:]
a[1]=88
fmt.Println(a)
fmt.Println(b)
这将导致打印
[1 88 3]
[1 88 3]
问题: 这是否意味着说 b:=a
创建一个数组的副本,而说 b:=a[:]
会创建一个指向底层数组(在这种情况下是'a')的切片?