溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Go語(yǔ)言變量的表示方法

發(fā)布時(shí)間:2022-03-30 13:47:06 來(lái)源:億速云 閱讀:125 作者:iii 欄目:移動(dòng)開(kāi)發(fā)

這篇“Go語(yǔ)言變量的表示方法”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Go語(yǔ)言變量的表示方法”文章吧。

簡(jiǎn)短形式,使用 := 賦值操作符

我們知道可以在變量的初始化時(shí)省略變量的類型而由系統(tǒng)自動(dòng)推斷,聲明語(yǔ)句寫(xiě)上 var 關(guān)鍵字其實(shí)是顯得有些多余了,因此我們可以將它們簡(jiǎn)寫(xiě)為 a := 50 或 b := false。

a 和 b 的類型(int 和 bool)將由編譯器自動(dòng)推斷。

這是使用變量的首選形式,但是它只能被用在函數(shù)體內(nèi),而不可以用于全局變量的聲明與賦值。使用操作符 := 可以高效地創(chuàng)建一個(gè)新的變量,稱之為初始化聲明。

注意事項(xiàng)

如果在相同的代碼塊中,我們不可以再次對(duì)于相同名稱的變量使用初始化聲明,例如:a := 20 就是不被允許的,編譯器會(huì)提示錯(cuò)誤 no new variables on left side of :=,但是 a = 20 是可以的,因?yàn)檫@是給相同的變量賦予一個(gè)新的值。

如果你在定義變量 a 之前使用它,則會(huì)得到編譯錯(cuò)誤 undefined: a。

如果你聲明了一個(gè)局部變量卻沒(méi)有在相同的代碼塊中使用它,同樣會(huì)得到編譯錯(cuò)誤,例如下面這個(gè)例子當(dāng)中的變量 a:

實(shí)例

package main

import "fmt"

func main() {
   var a string = "abc"
   fmt.Println("hello, world")
}

嘗試編譯這段代碼將得到錯(cuò)誤 a declared but not used。

此外,單純地給 a 賦值也是不夠的,這個(gè)值必須被使用,所以使用

fmt.Println("hello, world", a)

會(huì)移除錯(cuò)誤。

但是全局變量是允許聲明但不使用的。 同一類型的多個(gè)變量可以聲明在同一行,如:

var a, b, c int

多變量可以在同一行進(jìn)行賦值,如:

var a, b int
var c string
a, b, c = 5, 7, "abc"

上面這行假設(shè)了變量 a,b 和 c 都已經(jīng)被聲明,否則的話應(yīng)該這樣使用:

a, b, c := 5, 7, "abc"

右邊的這些值以相同的順序賦值給左邊的變量,所以 a 的值是 5, b 的值是 7,c 的值是 "abc"。

這被稱為 并行 或 同時(shí) 賦值。

如果你想要交換兩個(gè)變量的值,則可以簡(jiǎn)單地使用 a, b = b, a,兩個(gè)變量的類型必須是相同。

空白標(biāo)識(shí)符 _ 也被用于拋棄值,如值 5 在:_, b = 5, 7 中被拋棄。

_ 實(shí)際上是一個(gè)只寫(xiě)變量,你不能得到它的值。這樣做是因?yàn)?Go 語(yǔ)言中你必須使用所有被聲明的變量,但有時(shí)你并不需要使用從一個(gè)函數(shù)得到的所有返回值。

并行賦值也被用于當(dāng)一個(gè)函數(shù)返回多個(gè)返回值時(shí),比如這里的 val 和錯(cuò)誤 err 是通過(guò)調(diào)用 Func1 函數(shù)同時(shí)得到:val, err = Func1(var1)。

以上就是關(guān)于“Go語(yǔ)言變量的表示方法”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI