我研究了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为目标,那么这两个解决方案是等效的。
关于kotlin - 哪种是Kotlin koan “Partition”的首选解决方案,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44447212/