您好,登錄后才能下訂單哦!
小編給大家分享一下Go語言如何聲明變量,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
變量的功能是存儲用戶的數據
Go語言的每一個變量都擁有自己的類型,必須經過聲明才能開始用
變量的聲明格式:
var <變量名稱> [變量類型]
var a int //聲明一個整型類型的變量,可以保存整數數值 var b string //聲明一個字符串類型的變量 var c float32 //聲明一個32位浮點切片類型的變量,浮點切片表示由多個浮點類型組成的數據結構 var d func() bool //聲明一個返回值為布爾類型的函數變量,這種形式一般用于回調函數 var e struct{ //聲明一個結構體類型的變量 x int }
a.標準格式
以關鍵字var開頭,后置變量類型,行尾無須分號
var變量名 變量類型
b.批量格式
var ( a int b string c float32 d func() bool e struct { x int } )
將類型省略后,編譯器會嘗試根據等號右邊的表達式推導變量的類型
var hp = 100
將類型、var省略,把=變成=:
由于使用了“:=”,而不是賦值的“=”,因此推導聲明寫法的左值變量必須是沒有定義過的變量。
若定義過,將會發生編譯錯誤
xp := 10 fp,ap=20,30
在使用多重賦值時,如果不需要在左值中接收變量,可以使用匿名變量。
匿名變量的表現是一個“_”下畫線,使用匿名變量時,只需要在變量聲明的地方使用下畫線替換即可
a,_=10,20
編譯器推導類型時,【一定要賦值】
由于使用了“:=”,而不是賦值的“=”,因此推導聲明寫法的左值變量必須是沒有定義過的變量。【若定義過,將會發生編譯錯誤】
最好有兩個變量以上才能使用匿名變量【要不然失去了他的意義】
package main import "fmt" import "net" func main() { /*一、聲明*/ var a int //聲明一個整型類型的變量,可以保存整數數值 var b string //聲明一個字符串類型的變量 var c float32 //聲明一個32位浮點切片類型的變量,浮點切片表示由多個浮點類型組成的數據結構 var d func() bool //聲明一個返回值為布爾類型的函數變量,這種形式一般用于回調函數 var e struct { //聲明一個結構體類型的變量 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 // } // ) //三、編譯器推導類型的格式[一定要賦值,這是要編譯時進行類型的推導] var hp = 100 fmt.Println(hp) fp,ap:=20,30 fmt.Println(fp,ap) //四、短變量聲明并初始化 //hp := 10 //error no new variables on left side of := 在“:=”的左邊沒有新變量出現,意思就是“:=”的左邊變量已 //多個短變量聲明【編譯器不會報err重復定】 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語言如何聲明變量”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。