Go語(yǔ)言基礎(chǔ)變量的聲明及初始化示例詳解
一、概述
變量的功能是存儲(chǔ)用戶的數(shù)據(jù)
二、聲明變量
Go語(yǔ)言的每一個(gè)變量都擁有自己的類型,必須經(jīng)過(guò)聲明才能開(kāi)始用
變量的聲明格式:
var <變量名稱> [變量類型]
var a int //聲明一個(gè)整型類型的變量,可以保存整數(shù)數(shù)值 var b string //聲明一個(gè)字符串類型的變量 var c float32 //聲明一個(gè)32位浮點(diǎn)切片類型的變量,浮點(diǎn)切片表示由多個(gè)浮點(diǎn)類型組成的數(shù)據(jù)結(jié)構(gòu) var d func() bool //聲明一個(gè)返回值為布爾類型的函數(shù)變量,這種形式一般用于回調(diào)函數(shù) var e struct{ //聲明一個(gè)結(jié)構(gòu)體類型的變量 x int }
a.標(biāo)準(zhǔn)格式
以關(guān)鍵字var開(kāi)頭,后置變量類型,行尾無(wú)須分號(hào)
var變量名 變量類型
b.批量格式
var ( a int b string c float32 d func() bool e struct { x int } )
三、編譯器推導(dǎo)類型的格式【一定要賦值】
將類型省略后,編譯器會(huì)嘗試根據(jù)等號(hào)右邊的表達(dá)式推導(dǎo)變量的類型
var hp = 100
四、短變量聲明并初始化
將類型、var省略,把=變成=:
由于使用了“:=”,而不是賦值的“=”,因此推導(dǎo)聲明寫(xiě)法的左值變量必須是沒(méi)有定義過(guò)的變量。
若定義過(guò),將會(huì)發(fā)生編譯錯(cuò)誤
xp := 10 fp,ap=20,30
五、匿名變量——沒(méi)有名字的變量
在使用多重賦值時(shí),如果不需要在左值中接收變量,可以使用匿名變量。
匿名變量的表現(xiàn)是一個(gè)“_”下畫(huà)線,使用匿名變量時(shí),只需要在變量聲明的地方使用下畫(huà)線替換即可
a,_=10,20
六、注意
- 編譯器推導(dǎo)類型時(shí),【一定要賦值】
- 由于使用了“:=”,而不是賦值的“=”,因此推導(dǎo)聲明寫(xiě)法的左值變量必須是沒(méi)有定義過(guò)的變量?!救舳x過(guò),將會(huì)發(fā)生編譯錯(cuò)誤】
- 最好有兩個(gè)變量以上才能使用匿名變量【要不然失去了他的意義】
七、案例
package main import "fmt" import "net" func main() { /*一、聲明*/ var a int //聲明一個(gè)整型類型的變量,可以保存整數(shù)數(shù)值 var b string //聲明一個(gè)字符串類型的變量 var c float32 //聲明一個(gè)32位浮點(diǎn)切片類型的變量,浮點(diǎn)切片表示由多個(gè)浮點(diǎn)類型組成的數(shù)據(jù)結(jié)構(gòu) var d func() bool //聲明一個(gè)返回值為布爾類型的函數(shù)變量,這種形式一般用于回調(diào)函數(shù) var e struct { //聲明一個(gè)結(jié)構(gòu)體類型的變量 x int } var f bool //聲明一個(gè)布爾類型的變量 fmt.Printf("a類型:%T,值:%v\n", a, a) //a類型:int,值:0 fmt.Printf("b類型:%T,值:%q\n", b, b) //b類型:string,值:"" fmt.Printf("c類型:%T,值:%v\n", c, c) //c類型:float32,值:0 fmt.Printf("d類型:%T,值:%v\n", d, d) //d類型:func() bool,值:<nil> fmt.Printf("e類型:%T,值:%v\n", e, e) //e類型:struct { x int },值:{0} fmt.Printf("f類型:%T,值:%v\n", f, f) //f類型:bool,值:false /*二、批量聲明*/ // var ( // a int // b string // c float32 // d func() bool // e struct { // x int // } // ) //三、編譯器推導(dǎo)類型的格式[一定要賦值,這是要編譯時(shí)進(jìn)行類型的推導(dǎo)] var hp = 100 fmt.Println(hp) fp,ap:=20,30 fmt.Println(fp,ap) //四、短變量聲明并初始化 //hp := 10 //error no new variables on left side of := 在“:=”的左邊沒(méi)有新變量出現(xiàn),意思就是“:=”的左邊變量已 //多個(gè)短變量聲明【編譯器不會(huì)報(bào)err重復(fù)定】 conn1, err := net.Dial("tcp", "127.0.0.1:8080") conn2, err := net.Dial("tcp", "127.0.0.1:8080") fmt.Println(conn1,err) fmt.Println(conn2,err) //五、匿名變量——沒(méi)有名字的變量 a,_=10,20 }
以上就是Go語(yǔ)言基礎(chǔ)變量的聲明及初始化示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go語(yǔ)言基礎(chǔ)變量的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
go?defer?return?panic?執(zhí)行順序示例詳解
這篇文章主要介紹了go?defer?return?panic?執(zhí)行順序,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01Golang如何調(diào)用windows下的dll動(dòng)態(tài)庫(kù)中的函數(shù)
這篇文章主要介紹了Golang如何調(diào)用windows下的dll動(dòng)態(tài)庫(kù)中的函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05

Golang異常處理之defer,panic,recover的使用詳解

go語(yǔ)言日志實(shí)現(xiàn)詳解(打印日志、日志寫(xiě)入文件和日志切割)

golang?gorm錯(cuò)誤處理事務(wù)以及日志用法示例