0
分配映射到地圖
林創建並預先填充相似的子圖,然後當我分配給它,我知道我已經結束了引用同一個變量。在Golang
你可以檢查出來here
package main
import "fmt"
import "strconv"
func main() {
fmt.Println("Hello, playground")
var hour map[string]map[string]string
var minutes map[string]string
minutes = make(map[string]string)
for i := 0; i < 2; i++ {
iString := strconv.Itoa(i)
minutes[iString] = "EMPTY"
}
fmt.Println("Minutes")
fmt.Println(minutes)
hour = make(map[string]map[string]string)
for i := 0; i < 2; i++ {
iString := strconv.Itoa(i)
hour[iString] = make(map[string]string)
hour[iString] = minutes
}
fmt.Println("Hour")
fmt.Println(hour)
hour["0"]["1"] = "FULL"
fmt.Println("Modified Hour")
fmt.Println(hour)
}
所以,很顯然,這兩個hour["0"]["1"]
和hour["1"]["1"]
已被修改。
在這種情況下,一種方法是在地圖minutes
複製到我爲每小時創建的新地圖。是這個唯一的辦法?
如果是,則copying maps over a for loop是最好的辦法。那是對的嗎?