服务器设置和教程 · 10 10 月, 2024

GO教程: Go 語言 for range(鍵值循環)

GO教程: Go 語言 for range(鍵值循環)

在 Go 語言中,for range 是一個非常強大的語法結構,允許開發者在遍歷數組、切片、映射(map)和通道(channel)時,輕鬆獲取索引和對應的值。這篇文章將深入探討 for range 的用法,並提供一些實際的範例來幫助理解。

基本語法

for range 的基本語法如下:

for index, value := range collection {
    // 使用 index 和 value
}

在這裡,collection 可以是數組、切片、映射或通道。index 是當前元素的索引,而 value 是當前元素的值。

遍歷數組和切片

首先,我們來看看如何使用 for range 遍歷數組和切片。

package main

import "fmt"

func main() {
    // 定義一個數組
    arr := [3]int{10, 20, 30}
    
    // 使用 for range 遍歷數組
    for index, value := range arr {
        fmt.Printf("索引: %d, 值: %dn", index, value)
    }

    // 定義一個切片
    slice := []string{"apple", "banana", "cherry"}
    
    // 使用 for range 遍歷切片
    for index, value := range slice {
        fmt.Printf("索引: %d, 值: %sn", index, value)
    }
}

在這個範例中,我們定義了一個整數數組和一個字符串切片,然後使用 for range 來遍歷它們,並打印出每個元素的索引和對應的值。

遍歷映射(map)

接下來,我們來看看如何使用 for range 遍歷映射。

package main

import "fmt"

func main() {
    // 定義一個映射
    m := map[string]int{"apple": 1, "banana": 2, "cherry": 3}
    
    // 使用 for range 遍歷映射
    for key, value := range m {
        fmt.Printf("鍵: %s, 值: %dn", key, value)
    }
}

在這個範例中,我們定義了一個字符串到整數的映射,然後使用 for range 來遍歷它,並打印出每個鍵及其對應的值。

遍歷通道(channel)

最後,我們來看看如何使用 for range 遍歷通道。

package main

import "fmt"

func main() {
    // 定義一個通道
    ch := make(chan int)

    // 使用 goroutine 發送數據
    go func() {
        for i := 0; i < 5; i++ {
            ch <- i
        }
        close(ch) // 關閉通道
    }()

    // 使用 for range 遍歷通道
    for value := range ch {
        fmt.Printf("接收到的值: %dn", value)
    }
}

在這個範例中,我們創建了一個整數通道,並使用 goroutine 發送數據。然後,我們使用 for range 來接收通道中的數據,直到通道被關閉。

總結

Go 語言中的 for range 提供了一種簡潔而有效的方式來遍歷各種數據結構。無論是數組、切片、映射還是通道,for range 都能幫助開發者輕鬆獲取索引和對應的值,從而提高編程效率。

如果您對於 VPS 解決方案有興趣,或想了解更多關於 香港伺服器 的資訊,歡迎訪問我們的網站。