【第三阶段】kotlin中使用带let的安全调用

let常常和?.配合使用,如果前面的对象为null,let不执行,能够执行到let里面 对象一定不为null

1.不为null

kotlin 复制代码
fun main() {
   var name:String?="kotlin" //name是一个可空类型,发出广播,调用的地方必须补救措施
 var r = name?.let{
      //it==name,如果能执行到这个里面it一定不为null
      if(it.isBlank()){ //如果it=""打印
        "default" 
      }else{
          "$it"
      }
  }
 println(r)
}

执行结果

2.为" "

kotlin 复制代码
   var name:String?=" " //name是一个可空类型,发出广播,调用的地方必须补救措施
 var r = name?.let{
      //it==name,如果能执行到这个里面it一定不为null
      if(it.isBlank()){ //如果it=""打印
        "default" 
      }else{
          "$it"
      }
  }
 println(r)
}

执行结果

3.为null

kotlin 复制代码
fun main() {
   var name:String?=null //name是一个可空类型,发出广播,调用的地方必须补救措施
 var r = name?.let{
      //it==name,如果能执行到这个里面it一定不为null
      if(it.isBlank()){ //如果it=""打印
        "default" 
      }else{
          "$it"
      }
  }
 println(r)
}

执行结果

相关推荐
一晌小贪欢3 小时前
python-第15天:Python 列表推导式
开发语言·python·excel·数据可视化·python办公
Java后端的Ai之路3 小时前
17、Python - 观察者模式
开发语言·人工智能·python·观察者模式·外观模式
OPEN-F3 小时前
C++并发编程:条件变量与原子操作
java·开发语言·c++
神仙别闹3 小时前
基于 C++实现(控制台)车辆信息管理系统
开发语言·c++
智塑未来3 小时前
常用的在线ping测试工具有哪些
服务器·开发语言·php
又见情义3 小时前
RK3568 Android 13开机时间优化-系统应用裁剪实践
android
Freak嵌入式4 小时前
MicroPython+Pico 接收空闲中断和发送空闲中断全实战
java·开发语言·stm32·单片机·嵌入式硬件
重生之小比特4 小时前
【初阶C++】string
开发语言·c++
小玮看世界4 小时前
[Python]动态规划三步走:从爬楼梯到打家劫舍,再到最大子数组和
开发语言·python·动态规划
hunterandroid4 小时前
Android 内存泄漏排查实战:从 LeakCanary 报警到根因定位
android·前端