Kotlin基础 1
来源:互联网 发布:手机注册淘宝店铺步骤 编辑:程序博客网 时间:2024/06/05 19:04
空指针安全
Kotlin对比于Java的一个最大的区别就是它致力于消除空引用所带来的危险。在Java中,如果我们尝试访问一个空引用的成员可能就会导致空指针异常NullPointerException(NPE)的出现。在Kotlin语言中就解决了这个问题,下面来看看它是如何做到的。
不可空类型
//不允许赋值为null val params:String = ""
可空类型
//允许赋值为null,但是在接下来的逻辑,编译器都要求判空 val params:String? = null //为null输出null,否则输出length println(params?.length)
强制认定不为空
//可空类型 val params:String? = "www" //知道这个可空类型不可能为null,利用!!强制认定 println(params!!.length)
若为空返回null,不继续执行
//允许赋值为null,但是在接下来的逻辑,编译器都要求判空 val params:String? = null //为null输出null,否则输出length println(params?.length)
不安全的类型转换(错误示范)
// val parent:Parent = SubClass() 正确的 val parent:Parent = Parent() //错误的 val sub:SubClass = parent as SubClass sub.track()
安全的类型转换(正确示范)
val parent:Parent = SubClass() //如果继承关系不存在,sub == null val sub:SubClass? = parent as? SubClass //不为null就调用 track sub?.track()
不得不提的 Kotlin智能类型转换
val parent:Parent = SubClass() if(parent is SubClass){ //推倒类型,直接调用 subClass的方法 parent.track() }
阅读全文
0 0
- Kotlin基础 1
- Kotlin基础学习(1)
- Kotlin基础
- kotlin基础
- kotlin基础
- Kotlin基础
- kotlin基础
- kotlin基础
- kotlin基础
- Kotlin 基础
- Kotlin基础
- kotlin基础
- Kotlin-基础
- Kotlin基础
- Kotlin基础
- Kotlin 初窥门径[1]-基础概念
- Kotlin 初窥门径[1]-基础概念
- Kotlin基础语法
- C语言入门前言及其目录
- JS判断客户端是否是iOS或者Android,js判断是不是qq,js判断是否是移动端,跳转到相应的页面
- spring复杂类型属性注入
- 一文了解强化学习
- java二三事
- Kotlin基础 1
- 地理信息系统矢量数据的组织形式 第一章:二维空间对象数据模型
- android studio 升级和gradle配置
- DBI接口与DPI接口与DSI接口
- 在Eclipse中安装python插件的方法
- python中raw字符串与多行字符串
- 【一图看懂】机器学习6大算法,优势劣势全解析
- 直方图
- JAVA WEB