Kotlin表达式(二)

2020-10-20  本文已影响0人  小赵不在

语句和表达式的区别

Kotlin和Java的区别

Example1:if语句

Java代码:

public int max(int a, int b) {
    if (a > b) {
        return a;
    } else {
        return b;
    }
}

Kt代码:(Kotlin中,if是表达式,不是语句,可以直接return if表达式)

fun max(a: Int, b: Int): Int {
    return if (a > b) a else b
}

简化版Kt代码:
fun max2(a: Int, b: Int) = if (a > b) a else b

Example2:when语句

Kotlin中的when,完全可以取代Java中的switch和if/else,when也是表达式,when的每个分支的最后一行为当前分支的值
Java中的switch代码:

public String getPoint(char grade) {
        switch (grade) {
            case 'A':
                return "GOOD";
            case 'B':
            case 'C':
                return "OK";
            case 'D':
                return "BAD";
            default:
                return "UN_KNOW";
        }
    }

Kt中的when代码:

fun getPoint(grade: Char) = when (grade) {
    'A' -> "GOOD"
    'B', 'C' -> {
        println("test when")
        "OK"
    }
    'D' -> "BAD"
    else -> "UN_KNOW"
}

Java中的if else代码:

public String getPoint2(Integer point) {
        if (point > 100) {
            return "GOOD";
        } else if (point > 60) {
            return "OK";
        } else if (point.hashCode() == 0x100) {
            //...
            return "STH";
        } else {
            return "UN_KNOW";
        }
    }

Kt中的when代码:

fun getPoint2(grade: Int) = when {
    grade > 90 -> "GOOD"
    grade > 60 -> "OK"
    grade.hashCode() == 0x100 -> "STH"
    else -> "UN_KNOW"
}
上一篇 下一篇

猜你喜欢

热点阅读