# kotlin
Kotlin-协程基础
Kotlin 作为一种语言,在其标准库中仅提供极少数的 API,以便其他各种库能够利用协程的语言。与许多其
他具有类似功能的语言不同,async 和 await 不是 Kotlin 中的关键字,甚至不是其标准库的一部分。此
外,与future和promise相比,Kotlin 的挂起函数概念为异步操作提供了更安全且不易出错的抽象
——————这是官方文档给Kotlin协程的介绍
实现生成sequence序列的方法
这段时间在学习kotlin的协程相关的内容,其中看到一个函数sequence(@BuilderInference block: suspend SequenceScope<T>.() -> Unit),它可以一个接一个地或按任意大小的块生成序列(Sequences)
。这个函数
接受一个包含调用 yield() 和 yieldAll() 函数的 lambda 表达式。它们将一个元素返回给序列消费者并暂停sequence()的执行,直到消费者请求下一个元素。 yield() 将单个元素作为参数;yieldAll()可以 接受一个 Iterable对象、一个Iterator或另一个Sequence。
Kotlin中的序列(Sequences)
除集合之外,kotlin的标准库中还提供了另一种容器——序列(Sequence<T>)。序列同样提供了Iterable相
同的函数,但实现的是另一种方法进行多步骤的集合处理。如果你熟悉Java,其实就是Java8版本中Stream的翻版。
kotlin-内联类
Kotlin 1.5 宣布了一个重磅特性 value class,这是一个非常实用的特性,提高代码的可读性同时,还可以提高性能,因为编译器会对它进行更深层次的优化,减少对象的创建。