Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling 为什么可以';我不能把开头的括号放在下一行吗?_Error Handling_Go - Fatal编程技术网

Error handling 为什么可以';我不能把开头的括号放在下一行吗?

Error handling 为什么可以';我不能把开头的括号放在下一行吗?,error-handling,go,Error Handling,Go,尝试编译以下代码时遇到一个奇怪的错误: package main import fmt "fmt" func main() { var arr [3]int for i:=0; i<3; i++ { fmt.Printf("%d",arr[i]) } } 包干管 导入fmt“fmt” func main() { var arr[3]int 对于i:=0;iGo语言会自动插入分号,因

尝试编译以下代码时遇到一个奇怪的错误:

package main import fmt "fmt" func main() { var arr [3]int for i:=0; i<3; i++ { fmt.Printf("%d",arr[i]) } } 包干管 导入fmt“fmt” func main() { var arr[3]int
对于i:=0;iGo语言会自动插入分号,因此,
{
的唯一允许位置是在前一行的末尾。始终使用与
gofmt
产生的相同样式编写Go代码,您将不会遇到任何问题


请参阅Go的常见问题解答:

Go语言包含带有特定规则的分号,在您的示例中,i++后面的换行符在“{”前面引入了分号。请参阅


格式化在某种程度上是语言的一部分,使用gofmt使代码看起来相似,但是,您可以用许多不同的方式格式化代码。

Go代码有一个必需的支撑样式。 同样,程序员不能选择在python中使用大括号,而必须使用缩进

所需的支撑样式允许分号插入工作,而无需解析器向前看下一行(如果要实现REPL for GO代码,这非常有用)

是有效的Go代码,在不看下一行的情况下,解析器假定这就是您的意思,然后被未连接到后面任何内容的块所迷惑

在所有Go代码中使用相同的支撑样式可以使阅读更加容易,也可以避免讨论支撑样式

这难道不是程序员的选择吗?他希望如何格式化自己的文档 密码


也许吧。我认为向前走一步避免一些自行车脱落是很好的,比如没完没了的风格讨论。甚至有一个工具,它以标准的风格格式化代码,确保大多数Go代码遵循相同的准则。就像他们说的:“一致性无处不在>个人偏好。习惯它,这很好(tm)。”

Go lang fallows严格的规则,如Python,使用可视代码IDE,它将执行自动格式化和错误检测。

Go代码具有所需的支撑样式。 事实上,支撑风格是一个更基本的东西,事实上,我的大脑可以更快地阅读代码,在一个新的行上支撑,围棋是由谷歌设计的,他们不喜欢人们选择自己的风格。这只是谷歌实施了一个强迫世界的编码风格…这是“按我的方式做或根本不做”.在Kotlin,他们允许您使用,但自动格式化程序会更改它


我应该有权选择我的大脑认为更容易的东西。

因为我:=0;这个问题与打字毫无关系,更不用说严格的打字了;请更改标题。这不是咆哮的地方 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]) } }
package main

func main();