gpt4 book ai didi

go - 为什么 channel 类型中有一个 '<-'?

转载 作者:IT老高 更新时间:2023-10-28 13:07:48 25 4
gpt4 key购买 nike

这行得通。

var tick <-chan time.Time = time.Tick(1e8)

但事实并非如此。

var tick chan time.Time = time.Tick(1e8)

为什么我需要 <-在我的 channel 类型声明中?我以为 <-用于写入或读取 channel 。为什么会出现在一个类型中?

最佳答案

channel 可以有一个类型来指示它是只读的、只写的还是两者兼有。

指示 channel 方向是用 <- 作为类型的一部分完成的,或者对于读/写 channel 省略。

所以 <-<-chan time.Time是类型的一部分,

chan   time.Time  //Would be a read/writable channel
chan<- time.Time // Would be a write only channel
<-chan time.Time // Would be a read only channel

time.Tick(1e8)返回一个只读 channel 。

阅读更多语言规范 here

关于go - 为什么 channel 类型中有一个 '<-'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com