Go中这个括号括起来的变量声明语法是什么?
What is this parenthesis enclosed variable declaration syntax in Go?
我试图在 Go 中找到一些关于括号括起来的变量声明语法的信息,但也许我只是不知道它的名字,这就是我找不到它的原因(就像值和指针接收器一样)。
即我想知道这种语法背后的规则:
package main
import (
"path"
)
// What's this syntax ? Is it exported ?
var (
rootDir = path.Join(home(), ".coolconfig")
)
func main() {
// whatever
}
var ()
块中的那些变量在导入这个块的模块中可用吗?
var (...)
(而 const (...)
只是 shorthand 让你避免重复 var
关键字。它对单个变量没有多大意义像这样,但如果您有多个变量,以这种方式对它们进行分组看起来会更好。
与导出无关。以这种方式声明的变量根据其名称的大小写导出(或不导出),就像没有括号声明的变量一样。
这个代码
// 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
和 type
。
我试图在 Go 中找到一些关于括号括起来的变量声明语法的信息,但也许我只是不知道它的名字,这就是我找不到它的原因(就像值和指针接收器一样)。
即我想知道这种语法背后的规则:
package main
import (
"path"
)
// What's this syntax ? Is it exported ?
var (
rootDir = path.Join(home(), ".coolconfig")
)
func main() {
// whatever
}
var ()
块中的那些变量在导入这个块的模块中可用吗?
var (...)
(而 const (...)
只是 shorthand 让你避免重复 var
关键字。它对单个变量没有多大意义像这样,但如果您有多个变量,以这种方式对它们进行分组看起来会更好。
与导出无关。以这种方式声明的变量根据其名称的大小写导出(或不导出),就像没有括号声明的变量一样。
这个代码
// 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
和 type
。