基礎使用
// 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)
}