我尝试编译以下代码时遇到一个奇怪的错误:
package main
import fmt "fmt"
func main()
{
var arr [3]int
for i:=0; i<3; i++
{
fmt.Printf("%d",arr[i])
}
}
错误如下:
unexpected semicolon or newline before {
在代码工作后更正后:
package main
import fmt "fmt"
func main(){
var arr [3]int
for i:=0; i<3; i++{
fmt.Printf("%d",arr[i])
}
}
GO语言这么严格打字吗?这也没有警告.这不是程序员的选择,他想如何格式化他的代码? 去语言警告和错误
Esk*_*ola 11
Go语言执行自动分号插入,因此唯一允许的位置{是在前一行的末尾.始终使用与产品相同的样式编写Go代码gofmt,您将没有任何问题.
请参阅Go的FAQ:为什么有括号但没有分号?为什么我不能把开口支架放在下一行?
小智 7
go语言包括带有特定规则的分号,在你的情况下,i ++之后的换行符在'{'之前引入了一个分号.见http://golang.org/doc/go_spec.html.
格式化是语言的一部分,使用gofmt使代码看起来很相似,但是,您可以通过许多不同的方式格式化代码.
Go 代码有必需的支撑样式。就像Python中程序员不能选择使用大括号而必须使用缩进一样。
所需的大括号样式允许分号插入工作,而不需要解析器向前查看下一行(如果您想为 GO 代码实现 REPL,这很有用)
package main
func main();
Run Code Online (Sandbox Code Playgroud)
是有效的 Go 代码,并且在不查看下一行的情况下,解析器会假设这就是您的意思,然后被未连接到您在其后面放置的任何内容的块所混淆。
所有 Go 代码都具有相同的支撑样式,使其更易于阅读,并且还避免了有关支撑样式的讨论。
| 归档时间: |
|
| 查看次数: |
731 次 |
| 最近记录: |