範例導覽:範圍

範圍用於迭代各種資料結構中的元素。讓我們看看如何使用 範圍以及我們已學過的一些資料結構。

package main
import "fmt"
func main() {

這裡我們使用 範圍來加總在區塊中的數字。陣列也像這樣運作。

    nums := []int{2, 3, 4}
    sum := 0
    for _, num := range nums {
        sum += num
    }
    fmt.Println("sum:", sum)

範圍在陣列和區塊上提供每個條目的索引和值。上面我們不需要索引,所以我們使用空白識別碼 _ 來忽略它。不過,有時我們實際上需要索引。

    for i, num := range nums {
        if num == 3 {
            fmt.Println("index:", i)
        }
    }

範圍在地圖上迭代鍵值對。

    kvs := map[string]string{"a": "apple", "b": "banana"}
    for k, v := range kvs {
        fmt.Printf("%s -> %s\n", k, v)
    }

範圍也可以僅在映射中迭代鍵。

    for k := range kvs {
        fmt.Println("key:", k)
    }

範圍在字串中迭代 Unicode 碼點。第一個值是 rune 起始位元組索引,第二個值則是 rune 本身。請參閱 字串和 Runes 了解更多詳情。

    for i, c := range "go" {
        fmt.Println(i, c)
    }
}
$ go run range.go
sum: 9
index: 1
a -> apple
b -> banana
key: a
key: b
0 103
1 111

下一章範例:函式