为啥这里需要分号?
Posted
技术标签:
【中文标题】为啥这里需要分号?【英文标题】:Why do I need a semicolon here?为什么这里需要分号? 【发布时间】:2010-12-15 18:06:43 【问题描述】:这是一个测试 Go 程序:
package main
import fmt "fmt"
func main ()
ex := "moo cow\n";
fmt.Print (ex)
使用分号,它可以编译。但是,如果分号被删除,它不会:
string.go:5: fmt 附近的语法错误有什么想法吗?
更新(2012 年 3 月):较新的 Go 版本能够编译两种形式(带和不带分号)。
【问题讨论】:
【参考方案1】:来自The Go Programming Language Specification:
语句列表的元素是 用分号隔开,可以是 仅当前一个时省略 声明:
以声明列表的右括号“)”结尾;或 以不属于表达式的右大括号“”结尾。
【讨论】:
是的,似乎是它如何解析文本的问题。无论如何,我可能最终会自己输入所有分号。除非不允许。没用过就知道了。【参考方案2】:嗯,从技术上讲,答案在这里:http://golang.org/doc/effective_go.html#semicolons,但不是很清楚。看起来你可以在语句的末尾留下分号,但不是表达式。我认为(我在这里不确定)表达式是任何带有“=”(或“:=”)的东西(尽管 += 在本教程中似乎没问题?)
【讨论】:
读完之后,听起来你就像在 Pascal 中那样使用它们来分隔语句。在块之外,您不需要它们。 很好的答案 +1。我在这里引用了你***.com/a/64381507/12817546。以上是关于为啥这里需要分号?的主要内容,如果未能解决你的问题,请参考以下文章