----------------------------------------------
//code
type Header map[string]string
func (h Header) Set(key, value string) {
h[key] = value
}
var h Header = make(Header)
fmt.Println(h["aa"])
h.Set("aa", "456")
fmt.Println(h["aa"])
//out
456
----------------------------------------------
----------------------------------------------
//code
type Integer int
func (a Integer) Assign(b Integer) {
a = Integer(b)
}
var j Integer=0
fmt.Println(j)
j.Assign(6)
fmt.Println(j)
//out
0
0
----------------------------------------------
我用这两段代码测试了下,发现是不同的表现。Header感觉像是引用传递,Interger像是值传递,请问是为什么啊?小弟初学go,请大家多多指导:)
更多评论
**值传递**
```type Integer int
func (a *Integer) Assign(b Integer) {
*a = Integer(b)
}```
map就不说了,跟值不值的没关系
#1