Что такое эквивалент Котлина для метода Dart's List.expand ()? - PullRequest
0 голосов
/ 20 декабря 2018

В Dart List.expand () позволяет отображать каждый элемент существующего списка в ноль, один или несколько элементов, а затем собирать их как новый 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 голосов
/ 21 декабря 2018

Используйте 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 } - это классное понимание для вашего генератора списков. Играть онлайн с этим кодом на https://try.kotlinlang.org!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...