gofmt命令不会格式化花括号({})。GoLang gofmt命令
代码:
package main
import "fmt"
func main()
{
fmt.Printf("Hello, world\n")
}
gofmt hello.go的输出
hello.go:6:1:预期声明,实测 '{' 退出状态2
如果我把它可以在任何地方正确格式化。 gofmt是否不格式化大括号?
gofmt命令不会格式化花括号({})。GoLang gofmt命令
代码:
package main
import "fmt"
func main()
{
fmt.Printf("Hello, world\n")
}
gofmt hello.go的输出
hello.go:6:1:预期声明,实测 '{' 退出状态2
如果我把它可以在任何地方正确格式化。 gofmt是否不格式化大括号?
你必须把大括号在同一行的函数声明的,否则你的代码不会因为这个语法错误
为什么有括号,但没有分号的编译?为什么我不能把大括号放在下一行?
Go使用括号括起来作为语句分组,012h曾使用过C语言中任何语言的程序员熟悉的语法。 然而,分号用于解析器,不适用于人,我们希望 尽可能地消除它们。为了实现这个目标,Go借用了BCPL的一个 技巧:分隔语句的分号在 形式语法中,但是在没有前瞻的情况下被自动注入, 在任何可能是语句结束的行末尾的词法分析器。 这在实践中效果很好,但具有强制 支架样式的效果。例如,函数的大括号不能单独出现在一行上。
你的代码有语法错误:把花括号与函数声明的同一行。
和的程序片段必须是语法上有效的使用gofmt:
见:https://golang.org/cmd/gofmt/它说:
当gofmt从标准输入读取时,可接收一个完整的围棋 程序或程序片段。 程序片段必须是 语法上有效的声明列表,语句列表或表达式。 格式化这样一个片段时,gofmt保留前导缩进 以及前导和尾随空格,因此Go程序的各个部分可以通过将它们通过gofmt管道化来格式化。
把花括号与函数声明的同一行 也许你应该添加gofmt到你的编辑器,这样可避免代码格式的问题
请注意,在进入大括号应使用内联函数声明! –