作者:燕歆波
导读:使用Kotlin开发,人性化提示 ?.let等语法处理


1、?.let

a?.let{it} 的意思:

当a为null时,什么都不执行
当a不为null时,执行大括号里的语句,意味着it肯定不为null
上面的语法可以理解为:
if(a == null){println("什么都不执行")
}
else{println("执行")
}

2、!!


在使用这句代码的时候如果不在outFilePath后加上!!,kotlin会在使用mSrcFilePath的地方提示风险,会建议你使用?.let{}对mSrcFilePath进行处理,那么,!!到底什么意思呢?

a!!
如果这里a!=null,则执行a
如果a==null ,则抛出空指针异常

3、?:

a ?: b
当a!=null时  执行a;
当a==null时,执行b;

需要注意的一点: 当声明message的时候,String类型之所以加了个?号,是因为不确定是否为null,所以才会使用此运算符,当然,即使确定不为null,也可以使用,只是语法会提示没必要

4、as?

a as?  b
如果a 是 b,则 a as b
如果 a 不是 b ,则 null

5、?.

a?.b()
如果a != null,则a.b();
如果a == null ,则 结果为null

Kotlin ?.let 、!! 、?:等运算符的使用相关推荐

  1. kotlin之重载运算符(十一)

    目录 1. 运算符重载概念 2. 重载运算符类型 3. 重载复合赋值运算符 4. 重载一元运算符 5. 重载比较运算符 1. 运算符重载概念 简单来说,就是Kotlin通过调用自己代码中定义特定的函数 ...

  2. kotlin 两目运算符

    var xie = a ?: "" 1 这个?:是kotlin的elvis用法,属于两目运算符,就是简单的if.else缩写, 当a不为null,取a的值,当a为null,取&qu ...

  3. 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)

    文章目录 I . Kotlin 变量总结 II . Kotlin 非空变量 III . 非空变量不能赋空 IV . lateinit 关键字 V . lateinit 初始化判定 VI . Kotli ...

  4. kotlin条件表达式

    2019独角兽企业重金招聘Python工程师标准>>> if 表达式 在 Kotlin 中,if 是带有返回值的表达式.因此Kotlin没有三元运算符(condition ? the ...

  5. 快速书写常见的 Kotlin 代码 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. kotlin学习目录

    目录 kotlin学习之基础(一) kotlin学习之函数(二) kotlin学习之类(三) kotlin学习之类的扩展(四) kotlin学习之密封类(五) kotlin学习之嵌套类和内部类(六) ...

  7. 《Kotlin项目实战开发》 第3章 类型系统与可空类型

    2019独角兽企业重金招聘Python工程师标准>>> 第3章 类型系统与可空类型 跟Java.C和C ++ 一样, Kotlin也是"静态类型编程语言". 通常 ...

  8. kotlin面试_Kotlin面试问题

    kotlin面试 Kotlin is the latest JVM programming language from the JetBrains. Google has made it the of ...

  9. kotlin 循环_Kotlin控制流–否则,用于循环,同时,范围

    kotlin 循环 In this tutorial, we'll be covering an important aspect of programming, namely Kotlin Cont ...

  10. 使用Kotlin的Android TextView –全面教程

    Kotlin is the official programming language for Android apps development. In this tutorial, we'll be ...

最新文章

  1. vs 设置调试路径为exe所在的路径
  2. linux系统的日常管理2
  3. Storage Options
  4. 【Java】6.3 类成员
  5. [NOI2011]阿狸的打字机
  6. matlab机械臂工作空间代码_老外研发模拟肌肉运动的机械臂,与人类协同工作动作完美同步...
  7. 《linux内核设计与实现》读书笔记第一、二章
  8. web前端知识(04html的表单)
  9. 五道口服装市场关闭前 职业“甩货人”赚一笔
  10. 【故障诊断分析】基于matlab FFT轴承故障诊断【含Matlab源码 1397期】
  11. 感谢所有的幸运与不幸 --- 致我的2016
  12. HTML页面中条形码或二维码扫描枪的使用
  13. 文献管理软件//Zotero的常用插件——Sci-hub/shortdoi批量下载、Zotfile重命名PDF文件及ZoteroQuickLook快速预览(二)
  14. 使用certbot为nginx站点添加免费ssl证书
  15. Python pass 用法
  16. 简单使用萤石云,实时直播,监控回放
  17. Hexo Butterfly 主题功能拓展 - 标签云 云养猫
  18. vue-父子组件传参以及无限级评论
  19. 动态规划算法学习(一)爬楼梯和凑金额
  20. 微信知识付费小程序梦想贩卖机v2-1.0.67源码下载+无限裂变

热门文章

  1. 人们愿意购买亲手摸过的商品
  2. PSD文件误删了怎么恢复?教你三招
  3. php安装protocol buffer 扩展,thinkphp引入protocol buffer
  4. 工信部:禁止外资参与网络出版 外国游戏国内要玩完
  5. 李航 统计学习方法 课后习题答案 第二版
  6. swap (虚拟内存)
  7. JSON字符串key值驼峰转下划线
  8. python五子棋ai棋力最高_Python实现AI五子棋
  9. 使用思科模拟器设计和配置校园网络
  10. 汉诺塔完整代码及分析