2016-03-06 61 views
1

我想在Go中找到括号内的变量声明语法的一些信息,但也许我只是不知道它的名称,这就是为什么我找不到它(就像与例如值和指针接收器)。围棋中的变量声明语法是什么?

即我想知道这种类型的语法背后的规则:

package main 

import (
    "path" 
) 

// What's this syntax ? Is it exported ? 
var (
    rootDir = path.Join(home(), ".coolconfig") 
) 

func main() { 
    // whatever 
} 

是在var()块可用的进口这一块这些变量的模块?

+0

我为什么得到-1? – Patryk

+0

这里描述的语法:https://tour.golang.org/basics/11 – slebetman

+1

我没有downvote你,但我猜想downvote是因为这是一个非常非常基本的概念。它在go教程的第二页中介绍 - 这就是它的基本原理:https://tour.golang.org/basics/2 – slebetman

回答

6

此代码

// 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了。

3

var (...)(和const (...)只是简写,让你避免重复var关键字。它没有很大的意义,像这样一个变量,但如果你有多个变量可以更好看它们分组此方式。

它没有任何与出口。在这种方式中声明的变量是基于他们的名字的大写出口(或没有),就像没有括号声明的变量。

相关问题