Type Checks Casts

is and !is operators is 用于执行运行时确定对象是否符合给定类型。 if (obj is String) { print(obj.length) } if (obj !is String) { // Same as !(obj is String) print("Not a String") } else { print(obj.length) } smart casts 核心原理 编译器自动跟踪类型检查结果,无需手动强制转换,直接使用目标类型的属性和方法。 fun demo(x: Any) { if (x is String) { print(x.length) // 编译器自动将 x 转换为 String 类型 } } 支持的控制流 if 条件:通过 is 或 !is 检查后,块内自动转换。 when 表达式:根据不同类型分支自动转换。 when (x) { is Int -> print(x + 1) is String -> print(x.length + 1) is IntArray -> print(x.sum()) } • while 循环:只要类型检查条件成立,循环内保持转换状态。 ...

July 6, 2025 · 2 min