Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Variables Go中的括号内变量声明语法是什么?_Variables_Go_Syntax_Declaration - Fatal编程技术网

Variables Go中的括号内变量声明语法是什么?

Variables Go中的括号内变量声明语法是什么?,variables,go,syntax,declaration,Variables,Go,Syntax,Declaration,我试图在Go中找到一些关于括号内的变量声明语法的信息,但可能我不知道它的名称,这就是为什么我找不到它(就像值和指针接收器一样) 也就是说,我想知道这种语法背后的规则: 主程序包 进口( “路径” ) //这是什么语法?它是出口的吗? 变量( rootDir=path.Join(home(),“.coolconfig”) ) func main(){ //随便 } 在导入此变量的模块中,var()块中的那些变量可用吗?var(…)(和const(…)只是简写,可以避免重复var关键字。像这样的单

我试图在Go中找到一些关于括号内的变量声明语法的信息,但可能我不知道它的名称,这就是为什么我找不到它(就像值和指针接收器一样)

也就是说,我想知道这种语法背后的规则:

主程序包
进口(
“路径”
)
//这是什么语法?它是出口的吗?
变量(
rootDir=path.Join(home(),“.coolconfig”)
)
func main(){
//随便
}
在导入此变量的模块中,
var()
块中的那些变量可用吗?

var(…)
(和
const(…)
只是简写,可以避免重复
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

这里描述的语法:我没有否决你,但我猜否决票是因为这是围棋中一个非常非常基本的概念。它在围棋教程的第二页中介绍了-这就是它的基本原理:我否决了它,因为通读一本教程可能会让你失望ot是每个人都喜欢的学习方法。如果你对其他语言有经验,只需浏览库/框架的来源和谷歌搜索你发现的与你的专业语言不同的东西是非常有帮助的。仅供参考:本教程称之为“考虑因素的”块,但语言规范甚至没有提到那么多。我在浏览时也没有了解语法。第11页对我来说太微妙了(和/或我想我略读了一点文本)第2页讨论的是导入,它的语法通常与变量声明完全不同。我之所以在这里,是因为我现在看到了语法糖,我想知道该怎么称呼它。还值得一提的是,
go fmt
var(…)进行了非常好的缩进,以提高可读性
语法。为什么不需要添加像rootDir:=path.Join(home(),“.coolconfig”)这样的分号?