eg1:
func main() {
var a = make(map[string]interface{})
defer func() {
fmt.Println(a)
}()
m:= make(map[string]interface{})
m["1"] =1
m["2"] =2
a= m
}
eg2:
func main() {
fmt.Println(test2())
}
func test2() map[string]interface{} {
var a = make(map[string]interface{})
defer func() {
m:= make(map[string]interface{})
m["1"] =1
m["2"] =2
a= m
}()
return a
}
eg3:
func main() {
var a = make(map[string]interface{})
defer fmt.Println(a)
m:= make(map[string]interface{})
m["1"] =1
m["2"] =2
a= m
}
eg1 eg2
- 将
func () {fmt.println}()
压入栈 - 对 a 进行赋值
- return
- 出栈执行 func()
- func 外变量重新赋值给里面的变量
- 返回对应的值(如果为指针则 defer 中将修改变量的值,否则不修改)
------------------------------------------------------------
eg1:map[1:1 2:2]
eg2:map[](从func()(e) e中传值也是返回这个值,返回的是字面量)
eg3:map[]
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于