在 Go 中编写嵌套函数时,编译器如何处理它?它是变成另一个函数并放在代码之外,还是在调用父函数时重新创建?
例如:
func FuncA() int {
a := 0
funcB := func(_a int) int {
return _a
}
return funcB(a)
}
这个函数是这样编译的吗?
func FuncA() int {
a := 0
return _funcB(a)
}
func _funcB(_a int) int {
return _a
}
或者它是否完全按照编写的方式编译,这意味着为调用funcB任何时间的定义分配了新内存?FuncA
眼眸繁星
翻阅古今
相关分类