美文网首页
golang 单向 channel

golang 单向 channel

作者: 夜空一起砍猩猩 | 来源:发表于2018-08-31 13:49 被阅读0次
只写通道:chan<- T
只读通道:<-chan T

即只可写入或只可读的channel,事实上 channel 只读或只写都没有意义,所谓的单向 channel 其实知识声明时用,比如

func foo(ch chan<- int) <-chan int {...}

chan<- int表示一个只可写入的 channel,<-chan int表示一个只可读取的 channel。上面这个函数约定了 foo 内只能从向 ch 中写入数据,返回只一个只能读取的 channel,虽然使用普通的 channel 也没有问题,但这样在方法声明时约定可以防止 channel 被滥用,这种预防机制发生再编译期间。

如果后续代码里,向本来用于读channel里写入了数据,编译器会提示错误,这时就要仔细检查自己的逻辑是否写错了

相关文章

网友评论

      本文标题:golang 单向 channel

      本文链接:https://www.haomeiwen.com/subject/fapswftx.html