【发布时间】:2020-04-19 16:22:28
【问题描述】:
希望有人能帮我告诉我以下代码有什么问题,因为我没有得到“Head First Kotlin”一书中的预期结果。
data class Grocery (val name:String, val category:String,
val unit:String, val unitPrice: Double,
val quantity: Int)
fun main() {
val groceries = listOf(Grocery("Tomatoes", "Vegetable", "lb", 3.0, 3),
Grocery("Mushrooms", "Vegetables", "lb", 4.0,1),
Grocery("Bagels","Bakery", "Pack", 1.5,2),
Grocery("Olive Oil", "Pantry", "Bottle", 6.0,1),
Grocery("Ice Cream", "Frozen", "Pack", 3.0,2))
groceries.groupBy { it.category }.forEach {
println(it.key)
it.value.forEach { println(" ${it.name}") }
}
我得到的结果如下:
Vegetable
Tomatoes
Vegetables
Mushrooms
Bakery
Bagels
Pantry
Olive Oil
Frozen
Ice Cream
当我应该在书中得到:
Vegetable
Tomatoes
Mushrooms
Bakery
Bagels
Pantry
Olive Oil
Frozen
Ice Cream
我不确定是我遗漏了什么还是因为我使用的是 kotlin 1.3。
非常感谢
【问题讨论】:
标签: function kotlin lambda foreach group-by