Kotlin基础教程-类型检查和自动转换
来源:互联网 发布:坏家伙的全盛时代 知乎 编辑:程序博客网 时间:2024/06/05 14:13
类型检查和自动转换
类型判断
is/!is
表达式
if (obj is String) { print(obj.length)}if (obj !is String) { // same as !(obj is String) print("Not a String")}else { print(obj.length)}
智能转换
kotlin
具有自动转换类型的功能,在is/!is
表达式,会根据判断的结果走向的不同语句块,相应只能转换类型
if
语句
fun demo(x: Any) { if (x is String) { print(x.length) // x is automatically cast to String } x.length//编译器报错}
上面的if
条件内部的x
是可以直接调用String
的方法length
的。而外部的x
不可以。
在
||
和&&
操作中也有智能转换
if (x !is String || x.length == 0) return//如果x!is String判断失败,说明x是String类型,这个时候会自动转换为String if (x is String && x.length > 0) print(x.length) //如果x is String判断失败,就直接返回了,不会执行&&后面的。但是判断成功后,会自动转化为String
when
when (x) { is Int -> print(x + 1) is String -> print(x.length + 1) is Array<Int> -> print(x.sum())}
不安全的转换符
fun check(y: Int?) { val x: String = y as String}fun main(args: Array<String>) { val y: Int? = null check(y)}
如果传入的y
为null
,那么上面的y as String
就会报错。
安全转换符
as ?
fun check(y: Int?) { val x: String ? = y as? String println(x)}
阅读全文
0 0
- Kotlin基础教程-类型检查和自动转换
- Kotlin-类型检查和转换
- Kotlin-28.类型检查和转换(Type Cast)
- 类型检查和转换
- scala类型检查和转换
- kotlin入门(四)null和类型转换
- 自动类型转换和强制类型转换
- Kotlin基础教程-属性和字段
- 学习kotlin第14天_区间、类型检查与转换、this表达式、相等性
- Kotlin 其他(四) --- 类型的检查与转换“is”与“as”
- 自动和强制类型转换
- 自动类型提升和强制类型转换
- 类型转换前先作检查
- Kotlin基础教程-返回值和跳转
- Kotlin基础教程-对象表达式和声明
- 类的自动类型转换和强制类型转换
- 类的自动类型转换和强制类型转换
- Java自动类型转换和强制类型转换
- ViewPager加ImageLoader图片轮播
- 使用gcov生成覆盖率时,提示version '402*', prefer '408*'
- fastclick.js
- Android的Hendler机制详解
- jqGrid 5.x colModel 详解
- Kotlin基础教程-类型检查和自动转换
- PHP基础知识点总结01
- Orcale中一个简单的存储过程刷数据库数据
- Java正则表达式的几个例子
- [YTU]_2632 ( B2 友元光顾)
- 突破微信授权,获取任意微信网页源代码(含https)
- mybatis中association 和collection 的区别
- 能力
- 在python3.6上访问impala数据库