哪个是Kotlin koan“Partition”的首选解决方案?为什么?

问题描述 投票:1回答:1

我通过Kotlin koan分区进行了工作,并通过了单元测试:

    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()

是否有理由更喜欢这些解决方案中的一种?

kotlin partition
1个回答
1
投票

Kotlin Koans是为Kotlin 1.0编写的,它不支持lambda参数的解构。

否则,如果您的目标是Kotlin 1.1,这两种解决方案是等效的。

© www.soinside.com 2019 - 2024. All rights reserved.