【发布时间】:2012-07-08 03:08:42
【问题描述】:
根据我对规范的阅读:
简短的变量声明...是常规变量的简写 带有初始化表达式但没有类型的声明...
我还以为两者是一样的:
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,我显然错误地粘贴了两次。