Kotlin公司的“分区”的首选解决方案是什么?为什么?

我通过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 Koans是为Kotlin 1.0编写的,它不支持lambda参数的解构。

否则,如果你的目标是Kotlin 1.1,这两个解决方案是等价的。

Interesting Posts