Go 語(yǔ)言的 :=
前面兩個(gè)小節(jié)我們分別學(xué)習(xí)了 Go 語(yǔ)言中的變量聲明和賦值。按照一貫的思維,變量肯定是要先聲明然后才能被賦值并使用。但是在 Go 語(yǔ)言中新增了一個(gè)特殊的運(yùn)算符?:=
?,這個(gè)運(yùn)算符可以使變量在不被聲明的情況下直接使用,這節(jié)課我們就來(lái)具體看下這個(gè)特殊的運(yùn)算符:
1. 單變量 :=
Go 語(yǔ)言中新增了一個(gè)特殊的運(yùn)算符:=
,這個(gè)運(yùn)算符可以使變量在不聲明的情況下直接被賦值使用。其使用方法和帶值聲明變量類似,只是少了var
關(guān)鍵字,形如變量名:=變量值
,這樣就等于聲明了一個(gè)帶值的變量,該變量的類型與其變量值一致。
- 1?
package main
- 2
- 3?
import "fmt"
- 4
- 5?
func main() {
- 6? ? ?
helloWorld := "Hello World!"
- 7? ? ?
fmt.Println(helloWorld)
- 8?
}
- 1?
package main
- 2
- 3?
import "fmt"
- 4
- 5?
func main() {
- 6? ? ?
helloWorld := "Hello World!"
- 7? ? ?
fmt.Println(helloWorld)
- 8?
}
- 第 3 行:直接為變量?
helloWorld
?賦值為 “Hello World”; - 第 4 行:打印變量?
helloWorld
?。
輸出結(jié)果:
可以看到,上面的代碼中我們并沒(méi)有提前對(duì)?helloworld
?這個(gè)變量進(jìn)行聲明,而是直接就拿來(lái)用了,而且程序也沒(méi)有報(bào)錯(cuò),控制臺(tái)也正常打印出了 “Hello World!”。?:=
?符號(hào)的出現(xiàn)省去了我們大量的編寫(xiě)變量聲明的語(yǔ)句,在實(shí)際的開(kāi)發(fā)中我們一般使用這種形式來(lái)聲明變量。
2. 多變量 :=
在 Go 語(yǔ)言的多變量賦值體系中,也支持了:=
運(yùn)算符。你可以使用形如變量名,變量名:=變量值,變量值
的形式來(lái)進(jìn)行多變量操作。其使用方法和多變量帶值聲明類似,只是少了var
關(guān)鍵字。
- 1?
package main
- 2
- 3?
import "fmt"
- 4
- 5?
func main() {
- 6? ? ?
hello, World := "Hello", "World!"
- 7? ? ?
fmt.Println(hello, World)
- 8?
}
輸出結(jié)果:
在 Go 語(yǔ)言中為了使開(kāi)發(fā)更高效,更多的會(huì)使用?:=
?這種 Go 語(yǔ)言獨(dú)有的賦值方式,一開(kāi)始使用也許會(huì)有些不適應(yīng),上手之后簡(jiǎn)直不要太好用。
3. 小結(jié)
:=
?這個(gè)運(yùn)算符和?=
?同樣可以進(jìn)行單變量以及多變量的賦值。需要注意的是,在使用:=
給變量賦值的時(shí)候,要看一下這個(gè)變量是否已經(jīng)聲明過(guò)了,如果聲明過(guò)了就不需要使用?:=
?了。
文章來(lái)源于網(wǎng)絡(luò),侵刪!