以下是一个简单的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中读取到一个非空数据时,我们打印出读取到的数据。