2017-06-08 31 views
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() 

是否有喜欢的任何原因这些解决方案之一是另一个?

回答

1

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

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

相关问题