繁体   English   中英

Kotlin 自定义 getter 和可变列表

[英]Kotlin custom getter and mutable list

我是 Kotlin 的新手,我目前并不完全知道如何正确使用 getter 和 setter。 我想写一个 class 产品。 在这个 class 中是一个变量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:

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()
        }
}

您覆盖每个计算中的值。 您需要将其添加到总和中。 代替

value = item.quantity.toDouble() * basePrice

value += item.quantity.toDouble() * basePrice

或者你可以用更简单的方式得到它

val valueOfAllItems = stockList.map{ it.quantity.toDouble() * basePrice }.sum()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM