golang 在宣告變數上,也是我一個很喜歡的地方。 他擁有很多腳本語言(script language)的簡潔,但又擁有強型別的特性,下面就來介紹一些變數的宣告方式

宣告變數

下面是一般的宣告方式,可以用逗號的方式區隔開來:

package main

import (
	"fmt"
)
	var a,b,c int
	var x,y,z bool

func main() {
	fmt.Println(a,b,c,x,y,z)
}

也可以用這種一行行的方式宣告:

package main

import (
	"fmt"
)

var (
	a int
	b int
	c int
	x bool
	y bool
	z bool
)

func main() {
	fmt.Println(a, b, c, x, y, z)
}

也能混合式這樣宣告:

package main

import (
	"fmt"
)

var (
	a, b, c int

	x, y, z bool
)

func main() {
	fmt.Println(a, b, c, x, y, z)
}

初始化變數

一樣有幾種初始化的方式,對應上述宣告的方式,第一種如下:

package main

import (
    "fmt"
)
    var a,b,c int = 1,2,3
    var x,y,z bool = true,false,true

func main() {
    fmt.Println(a,b,c,x,y,z)
}

再來是最基礎的行式宣告:

package main

import (
	"fmt"
)

var (
	a int = 1
	b int = 1
	c int = 1
	x bool = true
	y bool = true
	z bool = true
)

func main() {
	fmt.Println(a, b, c, x, y, z)
}

混合式:

package main

import (
	"fmt"
)

var (
	a, b, c int = 1,2,3

	x, y, z bool = true,false,true
)

func main() {
	fmt.Println(a, b, c, x, y, z)
}

最後 golang 有提供一種語法糖的宣告方式,可以不用顯示宣告型別,不過只能在func裡面做宣告

package main

import (
	"fmt"
)

func main() {
	a := 1
	b := 1
	c := 1
	x := true
	y := true
	z := true

	fmt.Println(a, b, c, x, y, z)
}

還有其他的變形如下:

package main

import (
	"fmt"
)

func main() {
	a, b, c := 1,1,1
	x,y,z:=true,true,true
	fmt.Println(a,b,c,x,y,z)
}