从我规范的阅读:Go中短变量声明和长变量声明之间的关闭范围区别是什么?
短变量声明...是一个常规变量 声明与初始化表达式,但没有一个类型速记......
我原以为两者是相同的:
var f func()
f = func() {
...
}
和
f := func() {
...
}
但似乎他们不是。我试图总结外函数内自递归函数,但这个工程:
func myOuter() {
var f func()
f = func() {
f()
}
f()
}
但是这不,说在内部函数undefined: f
。
func myOuter() {
f := func() {
f()
}
f()
}
那么有什么区别? 有没有什么办法可以用短格式声明来写这个或者我必须把它写出来?
谢谢Kissaki,我明显粘贴了两次错误的相同的东西。 – Joe 2012-07-08 13:25:17