go語言中沒有while關鍵字,不支援while和do-while迴圈結構。從功能上講,但凡while語句能做的事情,for語句也可以實現,因此Go語言統一了for語句和while語句。且Go的開發團隊有比較嚴重的潔癖,while並不是一個必要選項,提供多種方式讓開發者選擇,容易讓開發者迷路,產生選擇困難;所以乾脆不給選擇的機會,強制讓大家統一風格。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
go語言中沒有while關鍵字,,不支援while和do-while迴圈結構。
迴圈語句用於重複執行某些程式中的語句。
程式語言中常見的迴圈語句包括while語句、do-while語句和for語句。但是Go語言中僅有for語言,沒有while語句。從功能上講,但凡while語句能做的事情,for語句也可以實現。因此Go語言統一了for語句和while語句。
且Go的開發團隊有比較嚴重的潔癖,while 並不是一個必要選項,提供多種方式讓開發者選擇,容易讓開發者迷路,產生選擇困難;所以乾脆不給選擇的機會,強制讓大家統一風格。
for語句
Go語言的for語句一共有三種:
第一種:
for init; condition; post {
...
}
登入後複製
以上三點等價於其他程式語言的for語句,因此第一種寫法等價於其他語言的for
語句。
第二種:
for condition {
...
}
登入後複製
第二種寫法等價於其他語言的while
語句。因為Go的for語句使不寫括號的,因此刪掉init
和post
就完全等價於了while語句。因此Go沒有引入while這個關鍵字,直接使用for語句實現while語句。
第三種:
for {
...
}
登入後複製
第三種寫法等價於其他語言的for(;;)
,也等價於while(true)
。
範例:
package main
import "fmt"
func main() {
res := 1
n := 10
for i:=1; i<=n; i++ {
res *= i
}
fmt.Println(n,"的階乘是",res)
}
// 10 的階乘是 3628800
登入後複製
for-each range
Go語言中for迴圈的range格式可以迭代slice、map、陣列、字串等型別,格式如下:
for k, v := range oldMap {
newMap[k] = v
}
登入後複製
範例:
package main
import "fmt"
func main() {
nums := [5]int{1, 2, 3, 4, 5}
for i,e := range nums {
fmt.Println("索引", i, "位置上的數值為", e)
}
}
// 索引 0 位置上的數值為 1
// 索引 1 位置上的數值為 2
// 索引 2 位置上的數值為 3
// 索引 3 位置上的數值為 4
// 索引 4 位置上的數值為 5
登入後複製
同Python,Go語言也使用下劃線_
來接住不需要的返回值。
for _,e := range nums {
...
}
登入後複製
【相關推薦:Go視訊教學、】
以上就是go語言有沒有while的詳細內容,更多請關注TW511.COM其它相關文章!