使用类型检查和自动类型转换

is操作符用来检查一个表达式是否是特定类型的实例。如果一个不可变的局部变量被检测出是某种数据类型,那么不需要显示的进行转换。

fun getStringLength(obj: Any): Int? {
    if (obj is String) {
    // `obj`会被自动的转换为`String`
        return obj.length
    }
    // `obj`的类型不是String,而是Any
    return null
}

或者是

fun getStringLength(obj: Any): Int? {
    if (obj !is String) return null
    // `obj`自动的转换为`String`
    return obj.length
}

更甚

fun getStringLength(obj: Any): Int? {
    // 在`&&`的右边,`obj`会被自动转换为`String`
    if (obj is String && obj.length > 0) {
        return obj.length
    }
    return null
}

results matching ""

    No results matching ""