为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在 Go 语言中使用 select 语句

为什么在 Go 语言中使用 select 语句

Go
吃鸡游戏 2023-06-19 10:57:38
正在学习Go,在此示例中,我可以看到该select语句让 goroutine 等待多个通信操作我们真的需要select声明吗?select我的下面没有声明也一样func runForChannel1(channel1 chan string) {    time.Sleep(1 * time.Second)    channel1 <- "Hi Arun ... I am Channel-1"}func runForChannel2(channel2 chan string) {    time.Sleep(2 * time.Second)    channel2 <- "Hi Arun ... I am Channel-2"}func testSelect() {    channel1 := make(chan string)    channel2 := make(chan string)    go runForChannel1(channel1)    go runForChannel2(channel2)    chval1, chval2 := <-channel1, <-channel2    fmt.Println(chval1, chval2)}func main() {    testSelect()}没有select声明,我能够等待两个渠道获得他们的价值......为什么我们需要Select声明?有人可以教育我吗?
查看完整描述

2 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

我们真的需要一个 select 语句吗?

是的。没有用户代码可以选择几个可能的通道操作中的一个,如果有几个可以执行,或者没有(默认)如果没有案例准备好。

(您的代码做了完全不同的事情。)


查看完整回答
反对 回复 2023-06-19
?
慕村9548890

TA贡献1884条经验 获得超4个赞

我认为在 golang 中创建 select case 是个坏主意。



查看完整回答
反对 回复 2023-06-19
  • 2 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信