2016-03-06 42 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關鍵字。它沒有很大的意義,像這樣一個變量,但如果你有多個變量可以更好看它們分組此方式。

它沒有任何與出口。在這種方式中聲明的變量是基於他們的名字的大寫出口(或沒有),就像沒有括號聲明的變量。

相關問題