關於Golang變量初始化/類型推斷/短聲明的問題

視頻: https://www.bilibili.com/video/BV1Zh411k7iB/

聲明變量同時初始化

上節我們瞭解瞭三種變量聲明的語法,並且知道未初始化的變量初始值都是其類型的零值

其實隻需要在聲明時賦予初始值,即可進行初始化

下面針對三種變量聲明語法進行初始化:

[1] var name type

[2] var name1, name2 type

[3]

var (
  name1 type1
  name2 type2
)

類型推斷

如果變量聲明時附帶初始值,Go會自動推斷出初始值的類型,這時可以省略掉變量類型的聲明:

通過fmt.Printf函數和%T標記(後面再瞭解,這裡先記下),我們最終得知name變量的類型最終推斷為string

疑問: var pi = 3.14pi變量的類型是什麼? 是float32還是float64? 試試便知:

Go會根據數值的精度(precision)來推斷變量類型:

  • 整數 -> int
  • 浮點數 -> float64
  • 復數 -> complex128

有瞭類型推斷(Type inference),我們有能力可以一行聲明多個不同類型的變量:

變量短聲明

Go還提供瞭一種更加簡潔的用來聲明初始化變量的語法,叫做變量短聲明(Short hand declaration)

變量短聲明,使用:=操作符,它有點像一個海象

利用變量短聲明,再次化簡上個例子的代碼:

在Go中,變量不能重復聲明,否則會報錯

使用短聲明:=時也一樣

因為短聲明要求左邊至少有一個未聲明的變量

第二行:=對於name來說是重新賦值,對於age來說是聲明並初始化

短聲明還有一個約束 —— 隻能在函數體內使用(後面講到變量作用域時再討論 =。=)

總結

到此這篇關於關於Golang變量初始化/類型推斷/短聲明的問題的文章就介紹到這瞭,更多相關Golang變量類型推斷內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: