Go中的循環結構
Go語言中最好的功能之一是為你提供更少的選擇。
我們只有一個循環語句:for
。
我們可以像這樣使用它:
for i := 0; i < 10; i++ {
fmt.Println(i)
}
我們首先初始化一個循環變量,然後設置我們每次迭代檢查的條件,以決定是否結束循環,最後在每次迭代結束時執行後置語句,在這個例子中是對i
進行增量運算。
i++
對變量i
進行遞增。
<
運算符 用於比較i
和數字10
,返回true
或false
,決定是否執行循環主體。
與C或JavaScript等其他語言不同,我們不需要在這個區塊周圍加上括號。
其他語言提供了不同類型的循環結構,但Go只有這一種。如果你熟悉具有while
循環結構的語言,我們可以像這樣模擬一個while
循環:
i := 0
for i < 10 {
fmt.Println(i)
i++
}
我們還可以完全省略條件,並在需要時使用break
結束循環:
i := 0
for {
fmt.Println(i)
if i < 10 {
break
}
i++
}
我在循環主體內使用了一個if
語句,但我們還沒有看到條件語句!我們將在下一節介紹它。
現在我要介紹的一個東西是range
。
我們可以使用for
來使用以下語法迭代一個數組:
numbers := []int{1, 2, 3}
for i, num := range numbers {
fmt.Printf("%d: %d\n", i, num)
}
//0: 1
//1: 2
//2: 3
注意:我使用了
fmt.Printf()
,它允許我們使用占位符%d
(表示十進制整數)和\n
(表示換行符)將任何值打印到終端。
在不需要使用索引時,使用這種語法很常見:
for _, num := range numbers {
//...
}
使用特殊的_
字符來避免Go編譯器引發錯誤,說“你沒有使用變量i
!”。