kotlin常用操作符

时间:2022-02-20 17:44:47

最近因为谷歌在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!!

6.范围操作符  in     判断某个值是否在某个范围内
if (i in 1..10) { // 等价于 1 <= i && i <= 10    println(i)}
  
  
    范围操作符downTo,
    
    
         for (i in 4 downTo 1){    print(i) //倒叙遍历}   // print “4321”
    步长值step,for(i in 4 downTo 1 step 2) print: 427.多行操作符 """ 一次输出多行内容例如:var str="""onetwo"""