【第三阶段】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)
}

执行结果

相关推荐
似霰12 分钟前
传统 Hal 开发笔记4----实现 Hal 模块
android·hal
NaturalHarmonia12 分钟前
【Go】sync package官方示例代码学习
开发语言·学习·golang
遥望九龙湖16 分钟前
3.析构函数
开发语言·c++
gihigo199818 分钟前
MATLAB中进行综合孔径微波辐射成像仿真
开发语言·matlab
Three K29 分钟前
Redisson限流器特点
java·开发语言
Android出海30 分钟前
Google Play正式出手整治后台耗电应用
android·新媒体运营·产品运营·流量运营·用户运营
Halo_tjn30 分钟前
Java 多线程机制
java·开发语言·windows·计算机
Winter_Sun灬32 分钟前
CentOS7 交叉编译 ACE+TAO-6.5.13 安卓 arm64-v8a 静态库
android·ace
Jeff-Nolan34 分钟前
C++运算符重载
java·开发语言·c++
YouEmbedded35 分钟前
解码智能指针
开发语言·c++·unique_ptr·shared_ptr·auto_ptr·weak_ptr