MST

星途 面试题库

面试题:Go中如何定义一个只写方向的Channel

请写出在Go语言中定义一个只写方向Channel的语法,并举例说明如何使用它向该Channel发送数据。
12.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

在Go语言中,定义一个只写方向Channel的语法如下:

var ch chan<- 数据类型

例如,定义一个只写方向的int类型Channel,并向其发送数据的示例代码如下:

package main

import (
    "fmt"
)

func main() {
    var ch chan<- int
    ch = make(chan<- int)

    go func() {
        ch <- 10
        close(ch)
    }()

    for num := range ch {
        fmt.Println(num)
    }
}

上述代码中,首先定义了一个只写方向的int类型Channel ch,然后通过make函数初始化该Channel。在一个匿名的Go协程中,向ch发送数据10,并关闭该Channel。主函数通过for...range循环从ch中接收数据并打印。注意,实际应用中接收方应该在另一个协程中进行接收操作,这里为了简化示例在主函数中接收。