英文:
Line Breaks in Go - Understanding this example from Go Tour
问题
我正在尝试理解Go Tour中的这个示例。第3行最后的逗号有什么意义?
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20),
)
换行符通常如何修改Go代码?我知道,如果没有换行符,我可以将这个语句写成
fmt.Println( pow(3, 2, 10), pow(3, 3, 20) )
它也可以编译通过。那么,为什么在换行符后需要额外的逗号呢?
英文:
I am trying to understand this example from the Go Tour.
What is the significance of this last comma on line 3
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20),
)
How do line breaks generally modify the code in go.
I know, that without the line breaks, I can write this statement as
fmt.Println( pow(3, 2, 10), pow(3, 3, 20) )
and it would compile.
So, why is the extra comma needed with line breaks
答案1
得分: 2
Go语言会自动在语句的末尾添加分号;
。
所以
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20),
)
和
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20),
);
是一样的。
但是
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20)
)
和
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20);
)
是不同的,后者显然是语法错误。
英文:
Go "automatically" adds ;
as the end of a statement.
So
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20),
)
as the same as
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20),
);
But
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20)
)
is the same as
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20);
);
which is obvioulsy a syntax error.
答案2
得分: 0
没有特殊意义。在函数调用中允许使用尾随逗号,尽管 go fmt
会将其删除。
英文:
There's no significance. Trailing commas are allowed in function calls, although go fmt
will remove them.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论