在Go中,有不同的**變數類型**,例如: - `int` 存儲整數(整數),例如123或-123 - `float32` 存儲浮點數字,帶小數,例如19.99或-19.99 - `string` - 存儲文本,例如“ Hello World”。字元串值用雙引號括起來 - `bool` 存儲具有兩個 ...
在Go中,有不同的變數類型,例如:
int
存儲整數(整數),例如123或-123float32
存儲浮點數字,帶小數,例如19.99或-19.99string
- 存儲文本,例如“ Hello World”。字元串值用雙引號括起來bool
存儲具有兩個狀態的值:true或false
聲明(創建)變數
在Go中,有兩種聲明變數的方法:
使用var
關鍵字:
使用var
關鍵字,後跟變數名稱和類型:
語法
var variablename type = value
註意:您始終必須指定type
或value
(或兩者)。
使用:=
符號
使用:=
符號,後跟變數值:
語法
variablename := value
註意:在這種情況下,變數的類型是從值中推斷的(這意味著編譯器根據值決定變數的類型)。
註意:無法使用:=
聲明變數,而不將值分配給它。
具有初始值的變數聲明
如果從一開始就知道變數的值,則可以在一行中聲明變數併為其賦值:
示例
package main
import ("fmt")
func main() {
var student1 string = "John" //type is string
var student2 = "Jane" //type is inferred
x := 2 //type is inferred
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
Go多變數聲明
在Go中,可以在同一行中聲明多個變數。
示例
此示例顯示如何在同一行中聲明多個變數:
package main
import ("fmt")
func main() {
var a, b, c, d int = 1, 3, 5, 7
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
}
註意: 如果使用type
關鍵字,則每行只能聲明一個類型的變數。
如果未指定type
關鍵字,則可以在同一行中聲明不同類型的變數:
示例
package main
import ("fmt")
func main() {
var a, b = 6, "Hello"
c, d := 7, "World!"
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
}
在塊中聲明Go變數
多個變數聲明也可以組合到塊中以增加可讀性:
示例
package main
import ("fmt")
func main() {
var (
a int
b int = 1
c string = "hello"
)
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
Go變數命名規則
變數可以有簡短的名稱(如x和y)或更描述性的名稱(age,price,carname等)。
Go變數命名規則:
- 變數名稱必須以字母或下劃線字元(_)開頭
- 變數名稱不能以數字開頭
- 變數名稱只能包含字母數字字元和下劃線(
a-z,A-Z
,0-9
和_
) - 變數名稱區分大小寫(age,Age和AGE是三個不同的變數)
- 變數名稱的長度沒有限制
- 變數名稱不能包含空格
- 變數名稱不能是任何Go關鍵字
多字變數名稱
具有多個單詞的變數名稱可能難以閱讀。
有幾種技術可用於使它們更易於閱讀:
駝峰命名法
每個單詞,除了第一個單詞以外,都以大寫字母開頭:
myVariableName = "John"
帕斯卡命名法
每個單詞以大寫字母開頭:
MyVariableName = "John"
蛇形命名法
每個單詞之間用下劃線字元分隔:
my_variable_name = "John"
最後
為了方便其他設備和平臺的小伙伴觀看往期文章,鏈接奉上:
公眾號搜索Let us Coding
,知乎,開源中國,CSDN,思否,掘金,InfoQ,簡書,博客園,慕課,51CTO,helloworld,騰訊開發者社區,阿裡開發者社區
看完如果覺得有幫助,歡迎點贊、收藏和關註