Go語言基礎(chǔ)變量的聲明及初始化示例詳解
一、概述
變量的功能是存儲用戶的數(shù)據(jù)
二、聲明變量
Go語言的每一個變量都擁有自己的類型,必須經(jīng)過聲明才能開始用
變量的聲明格式:
var <變量名稱> [變量類型]
var a int //聲明一個整型類型的變量,可以保存整數(shù)數(shù)值
var b string //聲明一個字符串類型的變量
var c float32 //聲明一個32位浮點(diǎn)切片類型的變量,浮點(diǎn)切片表示由多個浮點(diǎn)類型組成的數(shù)據(jù)結(jié)構(gòu)
var d func() bool //聲明一個返回值為布爾類型的函數(shù)變量,這種形式一般用于回調(diào)函數(shù)
var e struct{ //聲明一個結(jié)構(gòu)體類型的變量
x int
}
a.標(biāo)準(zhǔn)格式
以關(guān)鍵字var開頭,后置變量類型,行尾無須分號
var變量名 變量類型
b.批量格式
var (
a int
b string
c float32
d func() bool
e struct {
x int
}
)
三、編譯器推導(dǎo)類型的格式【一定要賦值】
將類型省略后,編譯器會嘗試根據(jù)等號右邊的表達(dá)式推導(dǎo)變量的類型
var hp = 100
四、短變量聲明并初始化
將類型、var省略,把=變成=:
由于使用了“:=”,而不是賦值的“=”,因此推導(dǎo)聲明寫法的左值變量必須是沒有定義過的變量。
若定義過,將會發(fā)生編譯錯誤
xp := 10 fp,ap=20,30
五、匿名變量——沒有名字的變量
在使用多重賦值時,如果不需要在左值中接收變量,可以使用匿名變量。
匿名變量的表現(xiàn)是一個“_”下畫線,使用匿名變量時,只需要在變量聲明的地方使用下畫線替換即可
a,_=10,20
六、注意
- 編譯器推導(dǎo)類型時,【一定要賦值】
- 由于使用了“:=”,而不是賦值的“=”,因此推導(dǎo)聲明寫法的左值變量必須是沒有定義過的變量。【若定義過,將會發(fā)生編譯錯誤】
- 最好有兩個變量以上才能使用匿名變量【要不然失去了他的意義】
七、案例
package main
import "fmt"
import "net"
func main() {
/*一、聲明*/
var a int //聲明一個整型類型的變量,可以保存整數(shù)數(shù)值
var b string //聲明一個字符串類型的變量
var c float32 //聲明一個32位浮點(diǎn)切片類型的變量,浮點(diǎn)切片表示由多個浮點(diǎn)類型組成的數(shù)據(jù)結(jié)構(gòu)
var d func() bool //聲明一個返回值為布爾類型的函數(shù)變量,這種形式一般用于回調(diào)函數(shù)
var e struct { //聲明一個結(jié)構(gòu)體類型的變量
x int
}
var f bool //聲明一個布爾類型的變量
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)類型的格式[一定要賦值,這是要編譯時進(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 := 在“:=”的左邊沒有新變量出現(xiàn),意思就是“:=”的左邊變量已
//多個短變量聲明【編譯器不會報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)
//五、匿名變量——沒有名字的變量
a,_=10,20
}
以上就是Go語言基礎(chǔ)變量的聲明及初始化示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go語言基礎(chǔ)變量的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
golang xorm及time.Time自定義解決json日期格式的問題
這篇文章主要介紹了golang xorm及time.Time自定義解決json日期格式的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
淺析golang?github.com/spf13/cast?庫識別不了自定義數(shù)據(jù)類型
這篇文章主要介紹了golang?github.com/spf13/cast庫識別不了自定義數(shù)據(jù)類型,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
Go語言中Struct與繼承與匿名字段和內(nèi)嵌結(jié)構(gòu)體全面詳解
這篇文章主要介紹了Go語言中Struct與繼承與匿名字段和內(nèi)嵌結(jié)構(gòu)體,Go語言中通過結(jié)構(gòu)體的內(nèi)嵌再配合接口比面向?qū)ο缶哂懈叩臄U(kuò)展性和靈活性,感興趣的可以了解一下2023-04-04
Golang實(shí)現(xiàn)IP地址轉(zhuǎn)整數(shù)的方法詳解
在 Go 語言中,將 IP 地址轉(zhuǎn)換為整數(shù)涉及到解析 IP 地址并處理其字節(jié)表示,本文給大家介紹了Golang實(shí)現(xiàn)IP地址轉(zhuǎn)整數(shù)的方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-02-02
一文帶你學(xué)會Go?select語句輕松實(shí)現(xiàn)高效并發(fā)
這篇文章主要為大家詳細(xì)介紹了Golang中select語句的用法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Golang有一定的幫助,需要的可以參考一下2023-03-03

