go語(yǔ)言中沒(méi)有while關(guān)鍵字,不支持while和do-while循環(huán)結(jié)構(gòu)。從功能上講,但凡while語(yǔ)句能做的事情,for語(yǔ)句也可以實(shí)現(xiàn),因此Go語(yǔ)言統(tǒng)一了for語(yǔ)句和while語(yǔ)句。且Go的開(kāi)發(fā)團(tuán)隊(duì)有比較嚴(yán)重的潔癖,while并不是一個(gè)必要選項(xiàng),提供多種方式讓開(kāi)發(fā)者選擇,容易讓開(kāi)發(fā)者迷路,產(chǎn)生選擇困難;所以干脆不給選擇的機(jī)會(huì),強(qiáng)制讓大家統(tǒng)一風(fēng)格。
本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。
go語(yǔ)言中沒(méi)有while關(guān)鍵字,,不支持while和do-while循環(huán)結(jié)構(gòu)。
循環(huán)語(yǔ)句用于重復(fù)執(zhí)行某些程序中的語(yǔ)句。
編程語(yǔ)言中常見(jiàn)的循環(huán)語(yǔ)句包括while語(yǔ)句、do-while語(yǔ)句和for語(yǔ)句。但是Go語(yǔ)言中僅有for語(yǔ)言,沒(méi)有while語(yǔ)句。從功能上講,但凡while語(yǔ)句能做的事情,for語(yǔ)句也可以實(shí)現(xiàn)。因此Go語(yǔ)言統(tǒng)一了for語(yǔ)句和while語(yǔ)句。
且Go的開(kāi)發(fā)團(tuán)隊(duì)有比較嚴(yán)重的潔癖,while 并不是一個(gè)必要選項(xiàng),提供多種方式讓開(kāi)發(fā)者選擇,容易讓開(kāi)發(fā)者迷路,產(chǎn)生選擇困難;所以干脆不給選擇的機(jī)會(huì),強(qiáng)制讓大家統(tǒng)一風(fēng)格。
for語(yǔ)句
Go語(yǔ)言的for語(yǔ)句一共有三種:
第一種:
for init; condition; post { ... }
登錄后復(fù)制
- init 一般為賦值表達(dá)式,用于循環(huán)控制變量及其他變量初始化。
- condition 關(guān)系表達(dá)式和邏輯表達(dá)式,用于指示循環(huán)控制條件。
- post 一般為賦值表達(dá)式,用于增減循環(huán)控制變量
以上三點(diǎn)等價(jià)于其他編程語(yǔ)言的for語(yǔ)句,因此第一種寫法等價(jià)于其他語(yǔ)言的for
語(yǔ)句。
第二種:
for condition { ... }
登錄后復(fù)制
第二種寫法等價(jià)于其他語(yǔ)言的while
語(yǔ)句。因?yàn)镚o的for語(yǔ)句使不寫括號(hào)的,因此刪掉init
和post
就完全等價(jià)于了while語(yǔ)句。因此Go沒(méi)有引入while這個(gè)關(guān)鍵字,直接使用for語(yǔ)句實(shí)現(xiàn)while語(yǔ)句。
第三種:
for { ... }
登錄后復(fù)制
第三種寫法等價(jià)于其他語(yǔ)言的for(;;)
,也等價(jià)于while(true)
。
實(shí)例:
package main import "fmt" func main() { res := 1 n := 10 for i:=1; i<=n; i++ { res *= i } fmt.Println(n,"的階乘是",res) } // 10 的階乘是 3628800
登錄后復(fù)制
for-each range
Go語(yǔ)言中for循環(huán)的range格式可以迭代slice、map、數(shù)組、字符串等類型,格式如下:
for k, v := range oldMap { newMap[k] = v }
登錄后復(fù)制
實(shí)例:
package main import "fmt" func main() { nums := [5]int{1, 2, 3, 4, 5} for i,e := range nums { fmt.Println("索引", i, "位置上的數(shù)值為", e) } } // 索引 0 位置上的數(shù)值為 1 // 索引 1 位置上的數(shù)值為 2 // 索引 2 位置上的數(shù)值為 3 // 索引 3 位置上的數(shù)值為 4 // 索引 4 位置上的數(shù)值為 5
登錄后復(fù)制
同Python,Go語(yǔ)言也使用下劃線_
來(lái)接住不需要的返回值。
for _,e := range nums { ... }
登錄后復(fù)制
【
相關(guān)推薦
- 2025年國(guó)內(nèi)免費(fèi)AI工具推薦:文章生成與圖像創(chuàng)作全攻略
- 自媒體推廣實(shí)時(shí)監(jiān)控從服務(wù)器帶寬到用戶行為解決方法
- AI時(shí)代,個(gè)人站長(zhǎng)如何用AI工具實(shí)現(xiàn)“一人公司”
- 個(gè)人站長(zhǎng)消亡論?從“消失”到“重生”的三大破局路徑
- raksmart法蘭克福云服務(wù)器延遲高嗎?
- 華納云高防服務(wù)器3.6折起低至1188元/月,企業(yè)級(jí)真實(shí)防御20G`T級(jí),自營(yíng)機(jī)房一手服務(wù)器資源
- 服務(wù)器的系統(tǒng)和普通電腦系統(tǒng)一樣嗎?
- RakSmart法蘭克福數(shù)據(jù)中心優(yōu)勢(shì)與適用場(chǎng)景