在Go語言中,通道(channel)是一種用于在不同goroutine之間傳遞數據的同步機制。通道可以用于在goroutine之間傳遞各種類型的數據,如整數、字符串、結構體等。下面是一個簡單的示例,展示了如何使用通道在goroutine之間傳遞整數數據:
package main
import (
"fmt"
"time"
)
func main() {
// 創建一個整數通道
intChannel := make(chan int)
// 啟動一個goroutine,向通道發送數據
go func() {
for i := 0; i < 5; i++ {
intChannel <- i
time.Sleep(1 * time.Second)
}
close(intChannel) // 發送完數據后關閉通道
}()
// 在主goroutine中接收通道數據
for num := range intChannel {
fmt.Println("Received:", num)
}
}
在這個示例中,我們創建了一個名為intChannel
的整數通道。然后,我們使用go
關鍵字啟動一個新的goroutine,在該goroutine中向通道發送5個整數。在發送完數據后,我們關閉通道。
在主goroutine中,我們使用range
關鍵字從通道接收數據。range
會持續從通道接收數據,直到通道被關閉。每次接收到數據時,我們都會打印出來。
這個示例展示了如何在Go語言中使用通道傳遞整數數據。你可以根據需要修改通道中的數據類型和發送/接收數據的邏輯。