我需要这个“有趣的价格”的方法工作时调用。然而,我就是做不到。我需要能够打印出下面的注释代码。我遗漏了什么?
enum class Tariff {
STANDARD, EVENT, WEEKEND;
fun price() {
when {
STANDARD -> "1.99"
EVENT -> "1.49"
WEEKEND -> "2.99"
}
}
}
//val default = Tariff.STANDARD
//println(default.price()) // gives 1.99
//val weekend = Tariff.WEEKEND
//println(weekend.price()) // gives 2.99发布于 2021-06-26 15:05:45
要引用在枚举中调用price()的对象(枚举的实例),可以使用单词this,因此应该这样做:
fun price() : String {
return when (this) {
STANDARD -> "1.99"
EVENT -> "1.49"
WEEKEND -> "2.99"
}
}注意返回类型和return关键字。
或者:
fun price() =
when (this) {
STANDARD -> "1.99"
EVENT -> "1.49"
WEEKEND -> "2.99"
}发布于 2021-06-26 20:20:01
您可以考虑将price存储为类的属性,而不是使用when枚举函数中的枚举值:
enum class Tariff(val price: String) {
STANDARD("1.99"), EVENT("1.49"), WEEKEND("2.99");
}然后你可以这样叫它:
fun main() {
println(Tariff.STANDARD.price)
println(Tariff.EVENT.price)
println(Tariff.WEEKEND.price)
}结果:
1.99
1.49
2.99https://stackoverflow.com/questions/68140001
复制相似问题