在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馆藏中找不到相应的方法。
答案 0 :(得分:1)
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 comprehension。 Play online,其代码为https://try.kotlinlang.org!