fun main() {
val username: String? = "Alice" // 可能为 null 的变量
// 安全调用:仅当 username 非空时,才执行 let 内的逻辑
username?.let {
println("用户名长度:${it.length}") // it 指代 username
println("大写形式:${it.uppercase()}")
}
// 若 username 为 null,上述代码块不会执行
val nullName: String? = null
nullName?.let {
println("这行不会执行") // 永远不会被调用
}
}
fun main() {
val nullName: String? = null
// 情况1:带 ?.let(安全调用)
nullName?.let {
println("执行不会执行") // 不会执行,无异常
}
// 情况2:不带 ? 的 let(直接调用)
nullName.let {
println("执行") // 抛出 NullPointerException
}
}
for (x in 1..5) {
print(x)
}
for (x in 1..10 step 2) {
print(x)
}
println()
for (x in 9 downTo 0 step 3) {
print(x)
}