kotlin - Kotlin 中的管道
问题描述
来自语言指南:(素数查找器)
fun CoroutineScope.numbersFrom(start: Int) = produce<Int> {
var x = start
while (true) send(x++) // infinite stream of integers from start
}
fun CoroutineScope.filter(numbers: ReceiveChannel<Int>, prime: Int) = produce<Int> {
for (x in numbers) if (x % prime != 0) send(x)
}
var cur = numbersFrom(2)
repeat(10) {
val prime = cur.receive()
println(prime)
cur = filter(cur, prime)
}
coroutineContext.cancelChildren() // cancel all children to let main finish
过滤器如何获取不是 receiveChannel 对象的参数???(来自第二次调用obv)
解决方案
哈哈它是一个receivechannel obj。诡计。
推荐阅读
- android - 将 Android 应用程序从 GCM 迁移到 FCM 云消息传递
- javascript - 我正在使用 socket.io 但客户端和服务器之间没有通信
- python-3.x - 如何使用 gspread (Python 3) 获取单元格的背景颜色
- laravel - 我应该在 laravel 护照刷新令牌中放什么?
- octobercms - Octobercms .env 与数据库邮件配置设置
- r - 如何在一个整洁的输出中可视化 wilcoxon 测试循环?
- java - Spring Boot WebMvcTest 没有到达控制器
- r - 如果一组行不包含特定单词,则过滤 dplyr 链中的行
- javascript - “aaencode”如何将 javascript 转换为表情符号?
- three.js - 根据标准化的相机位置、向上和方向旋转 3D 对象