Dart的List.expand()方法的Kotlin等效项是什么?

时间:2018-12-20 14:41:15

标签: kotlin

在Dart中,List.expand()允许将现有List的每个元素映射为零,一个或多个元素,然后将它们组合为新的Iterable。例如

var a=[1,2,3];
var b = a.expand((i)=>List.generate(i,(_)=>i.toString())).toList();
print(b.toString());
//Output: [1, 2, 2, 3, 3, 3]

基本上,增强的map()功能允许“一对多”映射

如果我想做同样的事情,什么是Kotlin?我在Kotlin馆藏中找不到相应的方法。

1 个答案:

答案 0 :(得分:1)

Use flatMap

fun main(args: Array<String>) {
    val a = listOf(0, 1, 2, 3) // listOf(1, 2, 3)
    val b = a.flatMap({i ->
        List(i) { i }
    })

    println(b)
}

> [1, 2, 2, 3, 3, 3]
列表生成器的

List(i) { i }a cool comprehensionPlay online,其代码为https://try.kotlinlang.org

相关问题