我试图在Go中找到关于括号括起的变量声明语法的一些信息,但也许我只是不知道它的名字,这就是为什么我找不到它(就像使用例如值和指针接收器一样)。 / p>
即我想知道这种语法背后的规则:
package main
import (
"path"
)
// What's this syntax ? Is it exported ?
var (
rootDir = path.Join(home(), ".coolconfig")
)
func main() {
// whatever
}
var ()
块中的变量是否可以在导入此变量的模块中使用?
答案 0 :(得分:11)
此代码
// What's this syntax ? Is it exported ?
var (
rootDir = path.Join(home(), ".coolconfig")
)
只是一种较长的写作方式
var rootDir = path.Join(home(), ".coolconfig")
然而,在一次声明大量变量时它很有用。而不是
var one string
var two string
var three string
你可以写
var (
one string
two string
three string
)
同样的技巧也适用于const
。
答案 1 :(得分:7)
var (...)
(和const (...)
只是简写,可以避免重复使用var
关键字。对于像这样的单个变量,它没有多大意义,但如果你有多个变量,它可以看起来更好,以这种方式分组。
它与导出没有任何关系。以这种方式声明的变量是根据其名称的大小写导出(或不导出),就像没有括号声明的变量一样。