如果你有更好的答案,请贴出来
希望你也能把平时遇到的问题反馈在下面,我会归档到这里来,以此进步
为什么不可以对字典map的元素取地址?
eg: m := map[string]int{"a":1,"b":2} fmt.Printf("%p",&m["a"]) //这里为什么不能对map元素取地址?
下面这几组方法调用中传递的指针还是值拷贝,返回的是值拷贝还是指针?
slice func q1(){ s := []string{"1","2"} fmt.Printf("%p",s) q3 := q2(s) fmt.Printf("%p",q3) } func q2(s1 []string)[]string{ fmt.Printf("%p",s1) return s1 } array func q1(){ a := [...]string{"1","2"} fmt.Printf("%p",a) q3 := q2(a) fmt.Printf("%p",q3) } func q2(a [2]string)[2]string{ fmt.Printf("%p",a) return a }
- 能不能解释一下slice,map不可以使用 == 操作,而array却可以?
Dangerous
向 nil map中设置值会导致错误,设置之前必须初始化.
var m map[string]int m["a"] = 3 //panic: assignment to entry in nil map
向 nil map中设置值会导致错误
var m map[string]int m["a"] = 3 //panic: assignment to entry in nil map
这个问题回答下:
因为当新添加数据到map,或者删除map中的数据,会导致map重新分配空间。这个指针就会泄露拉。