Go 變量

在Go中,有不同的變量類型,例如:
int
存儲整數(shù)(整數(shù)),例如123或-123float32
存儲浮點數(shù)字,帶小數(shù),例如19.99或-19.99string
- 存儲文本,例如“ Hello World”。字符串值用雙引號括起來bool
存儲具有兩個狀態(tài)的值:true或false
聲明(創(chuàng)建)變量
在Go中,有兩種聲明變量的方法:
使用var
關(guān)鍵字:
使用var
關(guān)鍵字,后跟變量名稱和類型:
語法
var variablename type = value
注意:您始終必須指定type
或value
(或兩者)。
使用:=
符號
使用:=
符號,后跟變量值:
語法
variablename := value
注意:在這種情況下,變量的類型是從值中推斷的(這意味著編譯器根據(jù)值決定變量的類型)。
注意:無法使用:=
聲明變量,而不將值分配給它。
具有初始值的變量聲明
如果從一開始就知道變量的值,則可以在一行中聲明變量并為其賦值:
示例
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中,所有變量都已初始化。因此,如果聲明變量而沒有初始值,則其值將設(shè)置為其類型的默認(rèn)值:
示例
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
這些變量已聲明,但未分配初始值。
通過運行代碼,我們可以看到它們已經(jīng)具有其各自類型的默認(rèn)值:
a
為""
b
為0
c
為false
聲明后的值分配
可以在聲明變量后將值分配給變量。這對于值最初未知的情況很有幫助。
示例
package main
import ("fmt")
func main() {
?var student1 string
?student1 = "John"
?fmt.Println(student1)
}
注意:無法使用:=
聲明變量,而不將值分配給它。
var和 := 之間的區(qū)別
var
和:=
之間存在一些小差異:
var
:=
可以在函數(shù)內(nèi)部和外部使用僅可在函數(shù)內(nèi)部使用可以分別進(jìn)行變量聲明和值分配變量聲明和值分配不能分別進(jìn)行(必須在同一行中完成)
示例
此示例顯示在函數(shù)外部使用var
關(guān)鍵字聲明變量:
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)
}
示例
由于:=
在函數(shù)外使用,因此運行程序會導(dǎo)致錯誤。
package main
import ("fmt")
a := 1
func main() {
?fmt.Println(a)
}
結(jié)果:
./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
關(guān)鍵字,則每行只能聲明一個類型的變量。
如果未指定type
關(guān)鍵字,則可以在同一行中聲明不同類型的變量:
示例
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變量命名規(guī)則
變量可以有簡短的名稱(如x和y)或更描述性的名稱(age,price,carname等)。
Go變量命名規(guī)則:
變量名稱必須以字母或下劃線字符(_)開頭
變量名稱不能以數(shù)字開頭
變量名稱只能包含字母數(shù)字字符和下劃線(
a-z,A-Z
,0-9
和_
)變量名稱區(qū)分大小寫(age,Age和AGE是三個不同的變量)
變量名稱的長度沒有限制
變量名稱不能包含空格
變量名稱不能是任何Go關(guān)鍵字
多字變量名稱
具有多個單詞的變量名稱可能難以閱讀。
有幾種技術(shù)可用于使它們更易于閱讀:
駝峰命名法
每個單詞,除了第一個單詞以外,都以大寫字母開頭:
myVariableName = "John"
帕斯卡命名法
每個單詞以大寫字母開頭:
MyVariableName = "John"
蛇形命名法
每個單詞之間用下劃線字符分隔:
my_variable_name = "John"
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,公眾號搜索Let us Coding