这是一个测试 Go 程序:
package main
import fmt "fmt"
func main () {
ex := "moo cow\n";
fmt.Print (ex)
}
使用分号,它可以编译。但是,如果删除分号,则不会:
string.go:5: fmt 附近的语法错误
有任何想法吗?
更新(2012 年 3 月):较新的 Go 版本能够编译两种形式(带和不带分号)。
这是一个测试 Go 程序:
package main
import fmt "fmt"
func main () {
ex := "moo cow\n";
fmt.Print (ex)
}
使用分号,它可以编译。但是,如果删除分号,则不会:
string.go:5: fmt 附近的语法错误
有任何想法吗?
更新(2012 年 3 月):较新的 Go 版本能够编译两种形式(带和不带分号)。
来自Go 编程语言规范:
语句列表的元素用分号分隔,只有在前一条语句时才可以省略:
- 以声明列表的右括号“)”结尾;或者
- 以不属于表达式的右大括号“}”结尾。
好吧,从技术上讲,答案就在这里: http: //golang.org/doc/effective_go.html#semicolons,但不是很清楚。看起来你可以在语句的末尾留下分号,但不是表达式。我认为(我在这里不确定)表达式是任何带有“=”(或“:=”)的东西(尽管 += 在本教程中似乎很好?)