Какое решение является предпочтительным для Kotlin koan Partition и почему?

Я работал с Kotlin koan Partition и пришел к этому, который проходит модульный тест:

    fun Shop.getCustomersWithMoreUndeliveredOrdersThanDelivered(): Set<Customer> = 
        customers.filter{it.orders.partition{it.isDelivered}
             .let{(delivered, undelivered) -> delivered.size < undelivered.size}}.toSet()

Это вариант решения:

    fun Shop.getCustomersWithMoreUndeliveredOrdersThanDelivered(): Set<Customer> = 
        customers.filter {
            val (delivered, undelivered) = it.orders.partition { it.isDelivered }
            undelivered.size > delivered.size
        }.toSet()

Есть ли причины предпочесть одно из этих решений другому?


person bartonstanley    schedule 08.06.2017    source источник


Ответы (1)


Kotlin Koans были написаны для Kotlin 1.0, который не поддерживал деструктуризацию в лямбда-параметрах.

В противном случае, если вы ориентируетесь на Kotlin 1.1, эти два решения эквивалентны.

person Ilya    schedule 09.06.2017