type Pass struct {
Str string
}
func (p *Pass) Copy() string {
return p.Str
}
type newType map[string]Pass
func (n newType) Copy() newType {
nT := make(newType, len(n))
for k, v := range n {
nT[k] = v
}
return nT
}
func TestMapPass(t *testing.T) {
a1 := newType{
"123": {Str: "abc"},
}
// a2 := a1 // 会修改
a2 := a1.Copy() // 不会修改,真拷贝,值传递
a2["123"] = Pass{Str: "xyz"}
v1 := a1["123"].Str
v2 := a2["123"].Str
_ = v1
_ = v2
}