首頁 >後端開發 >Golang >golang中「var」與「:=」的區別

golang中「var」與「:=」的區別

王林
王林原創
2019-12-24 17:11:236815瀏覽

golang中「var」與「:=」的區別

Go語言裡面定義變數有多種方式。

使用var關鍵字是Go最基本的定義變數方式,有時也會使用到:=來定義變數。

定義變數

// 定义一个名称为“variableName”,类型为"type"的变量
// var variableName type
var number int

定義變數並初始化值

// 初始化“variableName”的变量为“value”值,类型是“type”
// var variableName type = value
var number int = 10

同時初始化多個變量,又叫平行賦值

/*
    定义三个类型都是"type"的变量,并且分别初始化为相应的值
    vname1为v1,vname2为v2,vname3为v3
*/
// var vname1, vname2, vname3 type = v1, v2, v3
var number1, number2, number3 int = 1, 2, 3

你是不是覺得上面這樣的定義有點繁瑣?沒關係,因為Go語言的設計者也發現了,有一種寫法可以讓它變得簡單一點。我們可以直接忽略型別聲明,那麼上面的程式碼變成這樣了:

/*    
定义三个变量,它们分别初始化为相应的值    
vname1为v1,vname2为v2,vname3为v3    
然后Go会根据其相应值的类型来帮你初始化它们
*/
// var vname1, vname2, vname3 = v1, v2, v3
var number1, number2, number3 = 1, 2, 3

你覺得上面的還是有點繁瑣?好吧,我也覺得。讓我們繼續簡化:

/*    
定义三个变量,它们分别初始化为相应的值    
vname1为v1,vname2为v2,vname3为v3    
编译器会根据初始化的值自动推导出相应的类型*/
// vname1, vname2, vname3 := v1, v2, v3
number1, number2, number3 := 1, 2, 3

現在是不是看起來非常簡潔了? :=這個符號直接取代了vartype,這種形式叫做簡短宣告。不過它有一個限制,就是它只能用在函數內部;在函數外部使用則會無法編譯通過,所以一般用var方式來定義全域變數。

換句話說,「:=」只能在宣告「局部變數」的時候使用,而「var」則沒有這個限制。

相關文章教學推薦:golang教學

以上是golang中「var」與「:=」的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn