空安全设计的操作符号

操作符 作用
?

可空操作符,声明该值可为空

?.

安全调用操作符       b?.length

如果b非空,就返回b.length,否则返回 null

!!

非空断言运算符,将任何值转换为非空类型,若该值为空则抛出异常

val t = b!!.length

?.let{} ?. 与let一起使用,用于遍历集合时,则忽略null值,只对非空值执行操作
?:

Elvis操作符    val t = b?.length ?: -1

如果 ?: 左侧表达式(b?.length)非空,elvis 操作符就返回其左侧表达式,否则返回右侧表达式(-1)

as?

val aInt:Int? = a as? Int

如果对象不是目标类型,如果尝试转换不成功则返回null

filterNotNull() 如果有一个可空类型元素的集合,想要过滤非空元素,可以使用filterNotNull 来实现

kotlin - 空安全的更多相关文章

  1. 请不要乱用Kotlin ? 空检查

    直接上实例: fun main(args: Array<String>) { println("now, begin save data to database") v ...

  2. Kotlin——从无到有系列教程(5): 你该知道的Kotlin可空类型、空安全(null)、类型转换等特性

    在我们熟知的Java中,定义一个变量可以默认不赋值,因为Java的系统会给我们默认赋一个默认值,并且Java可定义一个赋值为null的变量,这样在使用这个变量的时候都会去显示判断该变量是否为null. ...

  3. Kotlin实践记录

    Kotlin中网络请求和Json解析: Request(url).run()为Kotlin中的网络请求方式,Json解析是自己封装类的操作. Json.get().toObject(Request(u ...

  4. 对 Kotlin 与 Java 编程语言的思考

    从长远来看,排名前10的也基本上是Java.C.C++.Python.C#.VB.PHP.JavaScript.至于Kotlin的排名,11月份在编程语言仅排41名,Ratings仅有0.216%. ...

  5. Kotlin 检查空类型

    Kotlin 会检查你定义的非空类型 如果运行过程中被赋空值了  会直接crash

  6. Kotlin学习快速入门(5)——空安全

    介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 ...

  7. kotlin之变量的可空与非空

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/218 kotlin之变量的可空与非空 上面一篇文章,介绍了 ...

  8. KOTLIN开发语言文档(官方文档) -- 入门

    网页链接:https://kotlinlang.org/docs/reference/basic-syntax.html 1.   入门 1.1.  基本语法 1.1.1.   定义包 包说明应该在源 ...

  9. Kotlin开发语言文档(官方文档)-- 目录

    开始阅读Kotlin官方文档.先上文档目录.有些内容还未阅读,有些目录标目翻译还需琢磨琢磨.后续再将具体内容的链接逐步加上. 文档链接:https://kotlinlang.org/docs/kotl ...

随机推荐

  1. 通过数组和枚举简化GPIO操作编码(转)

    源: 通过数组和枚举简化GPIO操作编码

  2. uwsgi xml 配置

    uwsgi 用来做nginx和应用之间的桥梁,负责接收nginx动态转发过来的用户请求,其配置方式有多种,我一般选择<xml>标签的形式 下面的这些配置仅限于ubuntu下用apt-get ...

  3. Selenium+Headless Firefox

    背景 今天本地调试基于Selenium+PhantomJS的动态爬虫程序顺利结束后,着手部署到服务器上,刚买的热乎的京东云,噼里啪啦一顿安装环境,最后跑的时候报了这么个错误: UserWarning: ...

  4. Eureka-zookeeper的服务发现替代方案

    参考: https://my.oschina.net/thinwonton/blog/1622905 http://www.open-open.com/lib/view/open14269407225 ...

  5. 使用mac自带终端修改hosts

    修改mac host文件绑定域名 打开终端 在终端terminal中输入sudo vi/etc/hosts sudo与vi之间有一个空格 上一步输入完成之后按enter回车键,如果当前用户账号有密码, ...

  6. win10 实现 iPad AVplayer 搭建 ftp 共享 PC 端

    1.首先是 iPad 端直接去 App Store 下载 AVplayer 即可,我下载的时候这个APP收费 18 元.这个app内置了加速播放视频的功能,非常适合学习时使用. 2.PC 端搭建 ft ...

  7. 集合框架-Set集合

    代码: Collection c = new ArrayList(); c.add("hello"); c.add("world"); c.add(" ...

  8. IIC学习

    1 概述: IIC是用两条双向的线,一条SDA(serial data line),一条SCL(serial clock). SCL:上升沿将数据输入到每个EEPROM器件中,下降沿驱动EEPROM器 ...

  9. iOS Xcode Error 集锦

    一),'libxml/tree.h' file not found Solution: 1.  导入libxml2.dylib 包 2.设置Header Search Paths 为 /usr/inc ...

  10. Install jdk on Ubuntu16

    wikiHow to Install Oracle Java JDK on Ubuntu Linux This tutorial will cover the installation of 32-b ...