我是Kotlin的新手,我目前并不完全知道如何正确使用getter和setter。我想写一个类产品。在这个类中,有一个变量 valueOfAllItems
从stockList中获取数量,然后与basePrice相乘。
这是我目前的方法,我认为它不正确。
class Product(val basePrice: Double, val stockList: MutableList<Stock>) {
val valueOfAllItems: Double = 0.0
get() {
var value = field
for (item in stockList) {
value = item.quantity.toDouble() * basePrice
}
return value
}
}
这里是库存类。
class Stock(val quantity: Int, val good: boolean)
请帮助我
编辑:这是最终的解决方案(感谢@AyTee和@Tenfour04)。
class Product(val basePrice: Double, val stockList: MutableList<Stock>) {
val valueOfAllItems: Double
get() {
return stockList.map{it.quantity.toDouble() * basePrice}.sum()
}
}
你在每次计算中都会覆盖这个值,你需要把它加到sum.replace中。
value = item.quantity.toDouble() * basePrice
与
value += item.quantity.toDouble() * basePrice
或者你也可以用更简单的方式获得
val valueOfAllItems = stockList.map{ it.quantity.toDouble() * basePrice }.sum()