以下是一个简单的Go语言channel代码示例:
package main
import "fmt"
func main() {
// 创建一个无缓冲的channel
ch := make(chan int)
// 启动一个goroutine将数据发送到channel
go func() {
for i := 1; i <= 5; i++ {
ch <- i // 发送数据到channel
}
close(ch) // 关闭channel
}()
// 从channel中读取数据
for {
if num, ok := <-ch; ok {
fmt.Println("读取到数据:", num)
} else {
break // channel已经关闭,退出循环
}
}
}
在这个示例中,我们创建了一个无缓冲的channel ch
,然后在一个goroutine中将1到5的数字发送到channel中。在主goroutine中,我们使用无限循环从channel中读取数据,直到读取到空数据为止(即channel被关闭),然后退出循环。每次从channel中读取到一个非空数据时,我们打印出读取到的数据。