为什么我在这里需要分号?

7 go

这是一个测试Go程序:

package main
import fmt "fmt"
func main () {
    ex := "moo cow\n";
    fmt.Print (ex)
}
Run Code Online (Sandbox Code Playgroud)

用分号,它编译.但是,如果删除分号,则不会:

string.go:5: syntax error near fmt

有任何想法吗?


更新(2012年3月):较新的Go版本能够编译两种形式(带分号和不带分号).

Lau*_*ves 11

来自Go编程语言规范:

语句列表的元素由分号分隔,只有在前面的语句中才可以省略:

  • 以声明列表的右括号")"结束; 要么
  • 结束括号"}",不是表达式的一部分.

  • ...蛮丑的? (8认同)