这是一个测试Go程序:
package main
import fmt "fmt"
func main () {
ex := "moo cow\n";
fmt.Print (ex)
}
用分号编译。但是,如果删除分号,则不会:
string.go:5: syntax error near fmt
有什么想法吗?
更新(2012年3月):较新的Go版本能够编译两种形式(带分号和不带分号)。
答案 0 :(得分:11)
来自The Go Programming Language Specification:
语句列表的元素是 用分号隔开,可能是 只有前一个省略 语句:
- 以声明列表的右括号“)”结尾;或
- 以不是表达式一部分的右括号“}”结束。
答案 1 :(得分:1)
嗯,答案在技术上是这里的:http://golang.org/doc/effective_go.html#semicolons,但不是很清楚。看起来您可以在语句结尾处留下分号,但不能使用表达式。我认为(我不确定这里)表达式是否包含“=”(或“:=”)(尽管+ =在教程中似乎没问题?)