我喜欢编程提供尽可能严格的接口,以避免错误的使用,因为它是明确的和自我记录的。
所以,当用户应该单向使用时,我喜欢提供定向通道,但当然,在内部我有一个双向通道副本。
分配以下作品:
var internal chan int
var external <-chan int
external = internal
但是现在我想向用户提供一个<-chan chan<- int类型(在函数的返回中),但以下方法不起作用:
var internal chan chan int
var external <-chan chan<- int
external = internal // this fails
我有两个问题:
究竟为什么这不起作用?
所以,我可以声明一个<-chan chan<-类型的变量,但是......不能在任何实际意义上使用这样的类型?(因为即使有定向通道,它们也是用于编排双向通道的 AFAIK,并且由于不可能进行分配,因此不能以这种方式使用)
慕容森
慕运维8079593
相关分类