【发布时间】:2016-04-02 03:05:54
【问题描述】:
这里有一个简短的例子来演示:
package main
import "fmt"
func main() {
array := [3]int{1, 2, 3}
array[0]++ // Works
slice := make([]int, 3)
for i := range slice {
slice[i] = i + 1
}
arrayMap := make(map[int][3]int)
sliceMap := make(map[int][]int)
arrayMap[0] = array
sliceMap[0] = slice
//arrayMap[0][0]++ // Does not compile: "cannot assign to arrayMap[0][0]"
sliceMap[0][0]++
fmt.Println(arrayMap)
fmt.Println(sliceMap)
}
为什么我不能修改位于地图内的数组的内容,即使它们在地图外是可变的?为什么这适用于切片?
【问题讨论】:
标签: arrays dictionary go