/

Go中的循環結構

Go中的循環結構

Go語言中最好的功能之一是為你提供更少的選擇。

我們只有一個循環語句:for

我們可以像這樣使用它:

1
2
3
for i := 0; i < 10; i++ {
fmt.Println(i)
}

我們首先初始化一個循環變量,然後設置我們每次迭代檢查的條件,以決定是否結束循環,最後在每次迭代結束時執行後置語句,在這個例子中是對i進行增量運算。

i++對變量i進行遞增。

< 運算符 用於比較i和數字10,返回truefalse,決定是否執行循環主體。

與C或JavaScript等其他語言不同,我們不需要在這個區塊周圍加上括號。

其他語言提供了不同類型的循環結構,但Go只有這一種。如果你熟悉具有while循環結構的語言,我們可以像這樣模擬一個while循環:

1
2
3
4
5
6
i := 0

for i < 10 {
fmt.Println(i)
i++
}

我們還可以完全省略條件,並在需要時使用break結束循環:

1
2
3
4
5
6
7
8
9
10
11
i := 0

for {
fmt.Println(i)

if i < 10 {
break
}

i++
}

我在循環主體內使用了一個if語句,但我們還沒有看到條件語句!我們將在下一節介紹它。

現在我要介紹的一個東西是range

我們可以使用for來使用以下語法迭代一個數組:

1
2
3
4
5
6
7
8
9
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(表示換行符)將任何值打印到終端。

在不需要使用索引時,使用這種語法很常見:

1
2
3
for _, num := range numbers {
//...
}

使用特殊的_字符來避免Go編譯器引發錯誤,說“你沒有使用變量i!”。

tags: [“Go”, “loops”, “range”]