请检查代码
package main
import (
"fmt"
"reflect"
)
func main() {
factory := func (name string) func(){
return func (){
fmt.Println(name)
}
}
f1 := factory("f1")
f2 := factory("f2")
pf1 := reflect.ValueOf(f1)
pf2 := reflect.ValueOf(f2)
fmt.Println(pf1.Pointer(), pf2.Pointer())
fmt.Println(pf1.Pointer() == pf2.Pointer())
f1()
f2()
}
结果:
4199328 4199328
true
f1
f2
为什么到了闭包函数的同一个地址!或者如何获取唯一地址!
白衣染霜花
幕布斯7119047
慕森王
相关分类