視頻: https://www.bilibili.com/video/BV1Zh411k7iB/
聲明變量同時(shí)初始化
上節(jié)我們了解了三種變量聲明的語(yǔ)法,并且知道未初始化的變量初始值都是其類型的零值
其實(shí)只需要在聲明時(shí)賦予初始值,即可進(jìn)行初始化
下面針對(duì)三種變量聲明語(yǔ)法進(jìn)行初始化:
[1] var name type
[2] var name1, name2 type
[3]
var (
name1 type1
name2 type2
)
類型推斷
如果變量聲明時(shí)附帶初始值,Go會(huì)自動(dòng)推斷出初始值的類型,這時(shí)可以省略掉變量類型的聲明:
通過(guò)fmt.Printf
函數(shù)和%T
標(biāo)記(后面再了解,這里先記下),我們最終得知name
變量的類型最終推斷為string
疑問(wèn): var pi = 3.14
,pi
變量的類型是什么? 是float32
還是float64
? 試試便知:
Go會(huì)根據(jù)數(shù)值的精度(precision)來(lái)推斷變量類型:
- 整數(shù) ->
int
- 浮點(diǎn)數(shù) ->
float64
- 復(fù)數(shù) ->
complex128
有了類型推斷(Type inference),我們有能力可以一行聲明多個(gè)不同類型的變量:
變量短聲明
Go還提供了一種更加簡(jiǎn)潔的用來(lái)聲明初始化變量的語(yǔ)法,叫做變量短聲明(Short hand declaration)
變量短聲明,使用:=
操作符,它有點(diǎn)像一個(gè)海象
利用變量短聲明,再次化簡(jiǎn)上個(gè)例子的代碼:
在Go中,變量不能重復(fù)聲明,否則會(huì)報(bào)錯(cuò)
使用短聲明:=
時(shí)也一樣
因?yàn)?strong>短聲明要求左邊至少有一個(gè)未聲明的變量
第二行:=
對(duì)于name
來(lái)說(shuō)是重新賦值,對(duì)于age
來(lái)說(shuō)是聲明并初始化
短聲明還有一個(gè)約束 —— 只能在函數(shù)體內(nèi)使用(后面講到變量作用域時(shí)再討論 =。=)
總結(jié)
到此這篇關(guān)于關(guān)于Golang變量初始化/類型推斷/短聲明的問(wèn)題的文章就介紹到這了,更多相關(guān)Golang變量類型推斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- golang中值類型/指針類型的變量區(qū)別總結(jié)
- Golang學(xué)習(xí)筆記(二):類型、變量、常量
- golang如何獲得一個(gè)變量的類型