Go 變數
變數是用於儲存資料值的容器。
Go 變數型別
在 Go 中,有不同**型別**的變數,例如:
int
- 儲存整數(整型數),例如 123 或 -123float32
- 儲存浮點數,帶小數,例如 19.99 或 -19.99string
- 儲存文字,例如 "Hello World"。字串值用雙引號括起來bool
- 儲存有兩種狀態的值:true 或 false
關於不同變數型別的更多資訊,將在 Go 資料型別章節進行解釋。
宣告(建立)變數
在 Go 中,有兩種宣告變數的方式:
1. 使用 var
關鍵字
使用 var
關鍵字,後跟變數名和型別
語法
var variablename type = value
注意:您必須始終指定 type
或 value
(或兩者)。
2. 使用 :=
符號
使用 :=
符號,後跟變數值
語法
variablename := value
注意: 在這種情況下,變數的型別是根據值**推斷**出來的(這意味著編譯器會根據值來決定變數的型別)。
注意:不能使用 :=
宣告一個沒有賦值的變數。
帶初始值的變數宣告
如果變數的值從一開始就知道,您可以在一行中宣告變數併為其賦值
示例
package main
import ("fmt")
func main() {
var student1 string = "John" // 型別是 string
var student2 = "Jane" // 型別被推斷
x := 2 // 型別被推斷
fmt.Println(student1)
fmt.Println(student2)
fmt.Println(x)
}
自己動手試一試 »
注意:student2
和 x
的變數型別是從它們的值中**推斷**出來的。
不帶初始值的變數宣告
在 Go 中,所有變數都會被初始化。因此,如果您宣告一個沒有初始值的變數,它的值將被設定為其型別的預設值
示例
package main
import ("fmt")
func main() {
var a string
var b int
var c bool
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
自己動手試一試 »
示例說明
在此示例中有 3 個變數
a
b
c
這些變數已宣告,但尚未分配初始值。
透過執行程式碼,我們可以看到它們已經具有各自型別的預設值
a
是""
b
是0
c
是false
聲明後的值賦值
可以在宣告變數後為其賦值。這對於值未知的初始情況很有用。
示例
package main
import ("fmt")
func main() {
var student1 string
student1 = "John"
fmt.Println(student1)
}
自己動手試一試 »
注意:不能使用“:=
”宣告一個沒有賦值的變數。
var 和 := 的區別
var 和 := 之間有一些小區別
var | := |
---|---|
可以在函式**內部**和**外部**使用 | 只能在函式**內部**使用 |
變數宣告和賦值可以**分開進行** | 變數宣告和賦值**不能分開進行**(必須在同一行完成) |
示例
此示例顯示使用 var
關鍵字在函式外部宣告變數
package main
import ("fmt")
var a int
var b int = 2
var c = 3
func main() {
a = 1
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
自己動手試一試 »
示例
由於 :=
在函式外部使用,執行程式將導致錯誤。
package main
import ("fmt")
a := 1
func main() {
fmt.Println(a)
}
結果
./prog.go:5:1: syntax error: non-declaration statement outside function body