Котлин: неразрешенная ссылка - PullRequest
0 голосов
/ 16 мая 2018

Kotlin: неразрешенная ссылка: 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")

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

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)
0 голосов
/ 16 мая 2018

Используйте этот код.

val totalFee: Int
if (daysRented <= 10){
    if(insPolicy){
       totalFee = (shortTermRate * daysRented) + (insRate * daysRented)
    }
    else{
        totalFee = shortTermRate * daysRented
    }
}
else{
    if(insPolicy){
        totalFee = (longTermRate * daysRented) + (insRate * daysRented)
    }
    else{
        totalFee = longTermRate * daysRented
    }
}
println("Rental fee: $totalFee")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...