最近因为谷歌在IO大会上宣布Kotlin为Android第一开发语言之后,Kotlin着实火了一把,甚至有人预言,Kotlin将在不久之后完全取代Java对于Android的作用,我闲着无事,整合了一下kotlin的常用操作符,对于初学者来说会有很大帮助。
1.安全转换操作符:as
例:
CompanyBean mCompany = intent.getSerializableExtra("company") as CompanyBean
(相当于Java中的 ---------> CompanyBean mConpany=( CompanyBean )intent.getSerialzableExtra("company"); )
2.冒号 :
冒号(“:”)在Kotlin中的作用标识类的继承或者接口的实现,
在Java中相当于implements extends 的作用,其中被修饰的类名后加括号,被修饰的接口名后无括号,如下:
class Worker :Person() , PersonInter{
}
3. is操作符
检查某个实例是否是某个类型,如果判断出属于某个类型,那么判断后的分支中可以直接可当该类型使用,无需显示转换
例如:
fun getStringLength(obj: Any): Int? {
//obj在&&右边自动动转换成"String"类型
if (obj is String && obj.length > 0)
return obj.length
returnnull
}
4.?:操作符
vala = b?.length?:-1
实例中的a值取决于右侧取值,而右侧取值又是根据b值进行判断,需要先对b值进行null的判断,如果b为null,那么直接返回冒号右侧的值-1,而b值不为null
的时候,才能访问属性length,从而返回值。
5.?操作符与 !!操作符
?是在对于对象的属性访问之前检查是否非空,这样就能很好的避免null调用属性的情况,从而避免空指针的出现。
!!操作符在赋值之前不对对象进行非空判断,这样看似很危险(不建议),但是!!操作符也有很多应用场景,例如,有些量在声明时因为一些特殊原因不能进行初始化
,他们只是声明一个类型,或者他们用了lateinit来进行修饰,需要在得到值时再进行赋值,那么这时就用到!!,要知道这样的场景其实也并不少见。
private lateinit var mDateStr: String
private var mChoiceTime: String? = null
。。。。。。
mDateStr = mChoiceTime!!