英文:
Why is the factored import statement better?
问题
官方的Go语言教程中提到了一种类似于下面这样的分组导入的方式:
import (
"fmt"
"math"
)
然后,教程中有以下稍微不太清楚的备注:
> 你也可以写多个导入语句,像这样:
>
> import "fmt"
> import "math"
>
> 但是使用分组导入语句是一个好的风格。
实际上,使用其中一种方法是否有具体的优势,比如行为上的差异或者只有其中一种语法容易出现的拼写错误,还是这只是一种任意的风格约定?
英文:
The official tour of Go, after exhibiting a factored import like this...
import (
"fmt"
"math"
)
... contains the following slightly unclear remark:
> You can also write multiple import statements, like:
>
> import "fmt"
> import "math"
>
> But it is good style to use the factored import statement.
Is there actually any concrete advantage to using one approach over the other - such as a difference in behaviour or an easy-to-make typo that is only a danger with one of the two syntaxes - or is this just an arbitrary style convention?
答案1
得分: 20
除了需要输入的字符数量不同之外,没有其他区别。一个较大的程序或包可能会导入十几个或更多的包,所以为什么要一次又一次地输入相同的单词(import
),当你可以用一对括号来实现相同的效果呢。
不过,现在大多数人可能都使用GoImports了。
英文:
There is no difference except for the amount of typing you have to do. A good sized program or package can easily have a dozen or more imported packages so why keep typing the same word (import
) time and again when you can achieve the same with a pair of ().
Though most people probably use GoImports nowadays anyway.
答案2
得分: 7
对于Go编译器来说,这两种写法没有任何区别。区别只存在于Go程序员需要复制/输入import的次数上。你可以将其类比为以下两种写法:
func f1(n1, n2, n3 int){
...
}
vs
func f1(n1 int, n2 int, n3 int){
...
}
或者 var n1, n2, n3 int
vs
var n1 int
var n2 int
var n3 int
两种写法都会产生相同的结果。
英文:
There is absolutely no difference for a go compiler. The difference is only for a go programmer in how many times he has to copy/type import. You can look at it in the same way as:
func f1(n1, n2, n3 int){
...
}
vs
func f1(n1 int, n2 int, n3 int){
...
}
or var n1, n2, n3 int
vs
var n1 int
var n2 int
var n3 int
both will produce the same result.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论