
102
|
第
5
章
contains(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0)
chunked 函数与 windowed 函数对于分阶段处理时序数据很有用。
5.8
解构
list
问题
如何使用解构来访问 list 的元素。
解决方案
将 list 分配给最多 5 个元素的分组。
讨论
解构
是通过将对象的值分配给变量的集合来从中提取值的过程。
示例 5-22 展示了如何在一个步骤中将列表的前几个元素分配给已定义的变量。
示例 5-22:从 list 中解构元素
val list = listOf("a", "b", "c", "d", "e", "f", "g")
val (a, b, c, d, e) = list
println("$a $b $c $d $e")
这段代码打印了字符串 a b c d e,因为创建的列表的前 5 个元素已分配给相同名称
的变量。这样之所以可行,是因为 List 类具有名为 componentN 的标准库中定义的
扩展函数,其中
N
从 1 到 5,参见示例 5-23。
示例 5-23:List(标准库)的 component1 扩展函数
/**
* Returns 1st *element* from the collection.
*/
@kotlin.internal.InlineOnly
public inline operator fun <T> List<T>.component1(): T {
return get(0)