Kotlin: Unresolved reference

标签 kotlin

Kotlin: Unresolved reference: totalFee



我只是在做这个小虚拟程序来练习,但它说totalFee尝试将值打印到屏幕时未解决。我已经看了一段时间了,不知道为什么。daysRented是先前在程序中声明的 int。
if (daysRented <= 10){
    if(insPolicy == true){
       val totalFee = (shortTermRate * daysRented) + (insRate * daysRented)
    }
    else{
        val totalFee = shortTermRate * daysRented
    }
}
else{
    if(insPolicy == true){
        val totalFee = (longTermRate * daysRented) + (insRate * daysRented)
    }
    else{
        val totalFee = longTermRate * daysRented
    }
}
println("Rental fee: $totalFee")

最佳答案

if是一个表达式,所以我会把它写成

val totalFee = if (daysRented <= 10){
    if(insPolicy == true){ // can just be if (insPolicy)
        (shortTermRate * daysRented) + (insRate * daysRented)
    }
    else{
        shortTermRate * daysRented
    }
}
else{
    if(insPolicy == true){
        (longTermRate * daysRented) + (insRate * daysRented)
    }
    else{
        longTermRate * daysRented
    }
}

这真的应该改进到
val termRate = if (daysRented <= 10) shortTermRate else longTermRate 
val totalFee = 
    if (insPolicy) {
        (termRate * daysRented) + (insRate * daysRented)
    } 
    else {
        termRate * daysRented
    }

甚至
val totalFee = termRate * daysRented + 
    (if (insPolicy) insRate * daysRented else 0)

关于Kotlin: Unresolved reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50360819/

相关文章:

kotlin - 在 Kotlin 中退出 onClickListener

kotlin - Foo::class.java 和 Foo::javaClass 有什么区别?

java - 在 ListView 中实现搜索功能时出错

java - lateinit 属性模拟对象尚未初始化

java - 如果 Kotlin 中的 try catch 失败返回什么?

spring - ReactiveCrudRepository 没有被 Spring 发现注入(inject)其他类

android - react native : Get Lifecycle or LifecycleOwner in native module

java - Dagger 中字符串被多次绑定(bind)

kotlin - 在用 Kotlin 编写的 Android 库的公共(public) API 中处理 R8 + JvmStatic Annotation + Lambda

kotlin - Kotlin 是否允许您为枚举分配自定义值?