Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

27.3. 流程控制

27.3.1. 

			
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
    }
}
			
			

27.3.2. 循环

			
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)
}