用 var 來定義變數,跟其他語言不大箱同的是,Go 必須將型態宣告寫在後面。
如果要同時宣告不同的變數,也可以用小括弧把變數括起來,但是一定要換行。
範例程式碼
package main
import "fmt"
var x, y, z int
var c, python, java bool
func main() {
fmt.Println(x, y, z, c, python, java)
}
範例程式碼
package main
import "fmt"
var (
x int
y int
z int
c bool
python bool
java bool
)
func main() {
fmt.Println(x, y, z, c, python, java)
}
輸出結果
0 0 0 false false false
定義變數時可以直接賦予初始值,變數與賦予的值要互相對應。如果有初始化的話,型別就可以省略;變數會直接取用初始化的類型
範例程式碼
package main
import "fmt"
var x, y, z int = 1, 2, 3
var c, python, java = true, false, "no!"
func main() {
fmt.Println(x, y, z, c, python, java)
}
輸出結果
1 2 3 true false no!
在函數中,「:=」 簡潔賦值語句在明確類型的地方,可以替代 var 定義。
(「:=」 結構不能使用在函數外,函數外的每個語法都必須以關鍵字開始。)
範例程式碼
package main
import "fmt"
func main() {
var x, y, z int = 1, 2, 3
c, python, java := true, false, "no!"
fmt.Println(x, y, z, c, python, java)
}
輸出結果
1 2 3 true false no!
總結來說
var a // 不定型別的變數
var a int // 宣告成 int
var a int = 10 // 初始化同時宣告
var a, b int // a 跟 b 都是 intvar a, b = 0, ""
var a int , b string
a := 0
a, b, c := 0, true, "tacolin" // 這樣就可以不同型別寫在同一行
var(
a bool = false // 記得要不同行,不然會錯
b int
c = "hello"
)