MST

星途 面试题库

面试题:Kotlin智能转换与模式匹配的协同运用

假设你有一个函数接收Any类型参数,要求在函数内部通过模式匹配识别出该参数是字符串类型且长度大于5时,将其转换为大写并返回。请用Kotlin代码实现此功能,并解释其中智能转换的原理。
42.0万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
fun processParam(param: Any): String? {
    return when (param) {
        is String -> if (param.length > 5) param.toUpperCase() else null
        else -> null
    }
}

智能转换原理

在Kotlin中,当使用is关键字进行类型检查时,如果检查通过,在后续的代码块中,Kotlin编译器会自动进行智能转换。在上述代码中,param is String检查了param是否为String类型。如果条件成立,在when分支内部,param就会被智能转换为String类型,此时可以直接调用String类的方法,如lengthtoUpperCase,而无需显式地进行类型转换。这种智能转换提高了代码的简洁性和安全性,减少了类型转换相关的错误。