面试题答案
一键面试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
类的方法,如length
和toUpperCase
,而无需显式地进行类型转换。这种智能转换提高了代码的简洁性和安全性,减少了类型转换相关的错误。