我的代码有问题。我想将常规if转换为elvis运算符。那我该怎么办?

时间:2019-09-04 19:48:43

标签: android kotlin

有我的代码 我该怎么办,我需要转换成Elvis运算符

fun calculate(valueA: Int, valueB: Int, valueC: Int?): String {
    val result = if (valueC != null) {
        valueA + (valueB - valueC)
    } else {
        100
    }
    return generateResult(result)
}

2 个答案:

答案 0 :(得分:1)

您当然可以这样写,但是从我的角度来看,您的初始版本更具可读性

fun calculate(valueA: Int, valueB: Int, valueC: Int?): String {
    val result = valueC?.let { valueA + (valueB - it) } ?: 100
    return generateResult(result)
}

答案 1 :(得分:0)

在您的示例中,我将使用不带大括号的单行if-else表达式:

fun calculate(valueA: Int, valueB: Int, valueC: Int?): String {
    val result = if(valueC != null) valueA + valueB - valueC else 100
    return generateResult(result)
}