makeによってつくられたデータ構造の参照渡し
makeによってデータ構造の参照を作り、関数に参照を渡しデータの変更を行います。
以下のような出力になるのはなぜでしょうか?
https://play.golang.org/p/lOC49HmVcq
package main
import (
"fmt"
)
func main() {
a := make(map[string]int)
set(a)
fmt.Println(a)
}
func set(a map[string]int){
for i:=0; i<10; i++ {
a["key"]++
}
a = map[string]int{"key":1}
fmt.Println(a)
}
出力
map[key:1]
map[key:10]
参照の値変更は最終的にa = map[string]int{"key":1}
が適用されて、予想した出力は
map[key:1]
map[key:1]
だったのですが、、ロジックを教えてください。