iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
1

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,false

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)
}


上一篇
如何安裝環境
下一篇
Golang型別
系列文
Go劍復國-30天導入Golang30

1 則留言

0
renewang
iT邦新手 5 級 ‧ 2018-11-27 12:53:19

好像只要有給定初始值,就可以不用宣告型別喔!不需要在 func 內。
:= 是連 var 這個保留字不用一併宣告的樣子,也者能在 func 內使用。

syhlion iT邦新手 5 級 ‧ 2018-11-29 16:04:12 檢舉

沒錯喔! golang 的確有提供您所說的語法糖,只要有給值,會自動依據給定得值的型別,golang complie 會自動賦予變數型別

我要留言

立即登入留言