溫馨提示×

Go語言通道如何關閉

小樊
102
2024-11-01 21:22:04
欄目: 編程語言

在Go語言中,通道(channel)是一種用于在不同Goroutine之間傳遞數據的同步機制。當你不再需要通道時,應該關閉它。關閉通道可以通知接收方不再有數據發送過來。關閉通道的語法是使用內置的close()函數。

以下是一個簡單的示例,演示了如何關閉通道:

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 num := range ch {
		fmt.Println("Received:", num)
	}

	fmt.Println("Channel closed")
}

在這個示例中,我們創建了一個整數類型的通道ch,然后啟動一個Goroutine向通道發送數據。在發送完數據后,我們使用close()函數關閉通道。在主Goroutine中,我們使用for-range循環從通道接收數據,直到通道關閉。當通道關閉時,for-range循環會自動結束。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女