Go 語言入門教程:變數

和牛發表於2020-06-04

基礎使用

// base.go  註釋
package main  // 包名
import "fmt"  // 匯入

func main() {
 fmt.Println("hello")
}

// wrong:  fmt.Println("hello")

main 函式是程式的執行入口,如果沒有 main 函式,可以通過匯入方式供其他模組呼叫。

注意:不能直接在函式外直接使用 fmt.Println

執行專案:

go run base.go

也可以只編譯:

go build base.go

編譯以後可以直接執行可執行檔案:

# linux
./base
# windows
base.exe

定義變數

定義變數不賦值:

func variableNoValue()  {
 var a int
 fmt.Println(a)
}

執行函式會列印 0,在 Go 中,定義了變數型別如果沒有賦值,會給它一個 zero value 作為預設值。 不賦值時,必須指定引數型別。

定義變數賦值:

func variableInitValue() {
 var a int = 2
 var b string = "hello"
 fmt.Println(a, b)
}

當多個變數的型別相同時,可以放在一起定義,並規定型別,主要是方便。

func variableMultiValue() {
 var firstName, lastName string = "liu""zhen"
 fmt.Println(firstName, lastName)
}

賦值時也可以不規定型別,由編譯器自己決定型別:

func varialbeNoType() {
 var a, b = 3"hello"
 fmt.Println(a, b)
}

:=

Go 為變數賦值提供了一種快捷方式, 但是這種用法只能再函式體內使用,不能直接再包內定義。這也是 Go 語言用得最多的一種定義變數的方式。

func variableQuick() {
 a, b := 5"hello"
 fmt.Println(a, b)
}

//wrong
// a, b := 5, "hello"

有時候需要在包內定義一系列的變數,可以用 var 分組:

var (
 a = 1
 b = "hello"
 c = true
)

變數總結

  • 函式體內優先使用 a := 5 定義變數,更簡潔。
  • 變數可以規定型別,也可以不規定。
  • 變數不賦值時,必須指定型別。
  • 可以使用括號對 var 變數分組

寫一個綜合例子,一個包大致長這樣:

package main // 包名
import "fmt" // 匯入

var (
 a = 1
 b = "hello"
 c = true
)

func main() {
 fmt.Println(c)
 variableNoValue()
 variableQuick()

func variableNoValue() {
 var a int
 fmt.Println(a)
}

func variableQuick() {
 a, b  := 5"hello"
 fmt.Println(a, b)
}

相關文章