2017-06-08 29 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,則這兩種解決方案是等效的。

相關問題