Go文档表明应该使用速记:
x := "Hello World"
而不是长篇
var x string = "Hello World"
提高可读性。虽然以下工作:
package main
import "fmt"
var x string = "Hello World"
func main() {
fmt.Println(x)
}
这不是:
package main
import "fmt"
x := "Hello World"
func main() {
fmt.Println(x)
}
并给出错误“函数体外的非声明语句”。如果我在函数中声明它:
package main
import "fmt"
func main() {
x := "Hello World"
fmt.Println(x)
}
然后它工作得很好。看来我只能在使用变量的函数中使用简写。是这样的吗?谁能告诉我为什么?
答案 0 :(得分:5)
规范声明short variable declarations can only be used in functions。
有了这个限制,包级别的所有内容都以关键字开头。这simpflies parsing。