Kotlin之常用操作符
来源:互联网 发布:故宫淘宝 月饼 编辑:程序博客网 时间:2024/06/11 02:57
前言
熟悉Kotlin中常出现的一些操作符的用法,有助于我们快速入门Kotlin,下面将列举Kotlin中常用的一些操作符。
- ?操作符
- ?:操作符
- !!操作符
- ==与===
- ::操作符
- @符合
- as?操作符
- :操作符
- """操作符
- is类型判断符
实例分析
?操作符
?操作符表示这个对象可能为空
//在变量类型后面加上问号,代表该变量是可空变量 var name: String? = "zhangsan"/***如果str不能转为Int类型,则返回null*/fun parseInt(str: String): Int? { // (代码略)}//如果 b非空,就返回 b.length ,否则返回 null,这个表达式的类型是 Int? b?.length
?:操作符
如果 ?: 左侧表达式非空,elvis操作符就返回其左侧表达式,否则返回右侧表达式。请注意,当且仅当左侧为空时,才会对右侧表达式求值。
//类型后面加?表示可为空var age: String? = null//age为空返回-1val ages2 = age?.toInt() ?: -1
!!操作符
如果!!左侧非空返回该值,否则抛出NPE(空指针)异常
//类型后面加?表示可为空var age: String? = "23" //抛出空指针异常val ages = age!!.toInt()
==与===
==判断值是否相等,===判断值及引用是否完全相等。
val num: Int = 128;val a:Int? = numval b:Int? = numprintln(a == b)print(a === b)
输出结果:
truefalse
::操作符
::表示当前
startActivity(Intent(this@KotlinActivity, MainActivity::class.java))
@符合
限定this的类型
class User { inner class State { fun getUser(): User { //返回User return this@User } fun getState(): State { //返回State return this@State } }}
as?操作符
当使用 as 转型的时候,可能会经常出现 ClassCastException。 所以,现在可以使as?安全转型,当转型不成功的时候,它会返回 null。
注:在使用intent传值的时候,会出现空字符串不能用as强制转型,这是应该使用as?
val m: Int? = a as? Int
:操作符
用于类的继承,变量的定义
- 类型和超类型之间的冒号前要有一个空格
实例和类型之间的冒号前不要空格
//定义全局变量时 var str: String? = null //类的继承与变量定义 class TestActivity<T : Serializable>(str: String) : Activity{}
"""操作符
三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如/n和/t都会被保留。
val str = """ one two """
is类型判断符
检查某个实例是否是某个类型,如果判断出属于某个类型,那么判断后的分支中可以直接可当该类型使用,无需显示转换
fun getStringLength(obj: Any): Int? { //obj在&&右边自动动转换成"String"类型 if (obj is String && obj.length > 0) return obj.length return null}
阅读全文
0 0
- Kotlin之常用操作符
- Kotlin系列之常用操作符
- Kotlin常用操作符
- kotlin常用操作符
- Kotlin常用操作符
- Kotlin常用操作符
- Kotlin之Elvis 操作符
- Kotlin进阶之相等、操作符重载
- Kotlin中常用操作符和用法介绍
- Kotlin学习--集合操作符之总数操作符
- Kotlin学习--集合操作符之映射操作符
- Kotlin学习--集合操作符之元素操作符
- Kotlin学习--集合操作符之顺序操作符
- Kotlin学习--集合操作符之生产操作符
- Kotlin操作符
- kotlin--操作符
- Kotlin-操作符重载
- Kotlin初探:Kotlin的集合操作符
- ALLPlayer(全能视频播放器)官方正式版V7.6下载 | allplayer官网下载
- 解决android studio中9-Patch问题
- svn使用
- Android Go 功能与新特性
- js绘制中国地图
- Kotlin之常用操作符
- JavaScript设计模式系列二:单例模式
- 一次低级技术失误引起的《清单革命》
- spring-boot框架开发的系统读取到的数据库数据相差8小时的问题解决
- 深度学习: GoogleNet 网络
- java之IDE工具elipse常见问题(待续)
- SurfaceView
- EA&UML日拱一卒-0基础学习微信小程序(2)- 关于小程序
- 2017年12月21日个人声明