所以我一直在尝试再次使用golang,我记得go有一个格式化工具可以清理您的源代码。因此,当我在项目上运行go fmt
时,会吐出以下错误:
expected declaration, found '{'
我期望go fmt能够修正括号以遵守go的语法要求,但它只会吐出一个错误。这是预期的功能,还是应该将括号实际放在正确的行上(与函数声明相同)?
我期望正确格式化的基本代码:
package main
func main()
{
println("Learning go again")
}
答案 0 :(得分:8)
Go对于有效代码是什么有很强烈的看法。
这是其中一种情况。与许多其他C系列语言不同,C语言允许将函数体声明的大括号放在同一行或下一行(如果您愿意,甚至可以在其后十行),Go编译器只允许将其放在同一行。
另一个例子是else语句。用其他语言
if {
}
else {
}
可能是有效的,甚至是首选的,在Go中,仅编译else语句的形式为
if {
} else {
}
go fmt
可以解决空白或缺少空格的问题:
func main() {
fmt.Println("Hello, playground")
}
func main(){
fmt.Println("Hello, playground")
}
都将成为
func main() {
fmt.Println("Hello, playground")
}