前言
Flow
是 Kotlin 协程库中的库,用于异步返回多个值,官方介绍是参考RxJava
等响应式流实现的,但是“拥有尽可能简单的设计,对 Kotlin 以及挂起友好且遵从结构化并发”。本文主要参考Flow 中文文档,梳理了学习过程中的要点和理解,以便日后查验。
原创...大约 4 分钟
Flow
是 Kotlin 协程库中的库,用于异步返回多个值,官方介绍是参考RxJava
等响应式流实现的,但是“拥有尽可能简单的设计,对 Kotlin 以及挂起友好且遵从结构化并发”。本文主要参考Flow 中文文档,梳理了学习过程中的要点和理解,以便日后查验。
本文为笔记性质,尚未成文,待整理
fun foo(): Sequence<Int> = sequence{
for (i in 1..3) {
Thread.sleep(1000)//会阻塞调用线程
yield(i)//生产一个项目
}
}
把递归通过编译器转化为迭代,从而避免 Stack Overflow
“以时间换取空间”
普通递归:
调用函数之后,还需要使用其返回值供自己使用,即自身返回值依赖于下一级函数,一般是调用自身的代码后面,还有其他的代码要执行。
fun fun1(n: Int): BigInteger {
if (n == 0) return BigInteger.valueOf(1L)
return n.toBigInteger().times(fun1(n - 1))
}
这是我在学习 Bennyhuo( github )的 kotlin 入门视频时的一些笔记,比较偏基础,用于查缺补漏。
xx.map() & xx.flatMap()
xx.flatMap() 用于返回可迭代的数组,而 xx.map() 则是任何可迭代数据都有的用来遍历的方法。