学习Kotlin中出现的常用操作符

学习koltin,弄懂它的操作符的意思很重要,下面就记录一下Kotlin常用操作符:


1、类型判断符 is

检查某个实例是否是某个类型,如果判断出属于某个类型,那么判断后的分支中可以直接当做该类型使用,无需显示转换

fun getStringLength(obj: Any): Int? {

        //obj在右边自动动转换成"String"类型      

          if (obj is String && obj.length > 0)

                return obj.length        

    return null    

}


2、?操作符

表示这个对象可能为空

//在变量类型后面加上问号,代表该变量是可空变量

var name: String? = "a"

/**

* 判断obj是不是String类型,返回它的长度

*/

fun getResult(obj: Any): Int? { //Int后面接?表示可以返回null

    var result = 0

    if (obj is String){

        result = obj.length

     }

    return result

}


3、Elvis操作符  ?:

在Koltin中,Elvis操作符特定是跟 null 比较,主要用来作null安全性检查。

举例:y = x?:0

等价于:

val y = if  (x !=== null)  x  else  0 

就是说如果x不等于null,则 y = x,否则 y = 0;

举例:val a = b?.length ?: -1

就是说如果 ?: 左侧表达式非空,elvis操作符就返回其左侧表达式,否则返回右侧表达式(-1)。注意,当且仅当左侧为空时,才会对右侧表达式求值。

koltlin中没有这样的三元运算符 true ?1:0,取而代之的事if (true) 1 else 0。


4、 非空断言 !! 和安全调用 ?.  和 非空断言调用 !! .

!! 是判断他是一个非空的值

var str:String?="abc"

str = null

str.length   //报错,因为str可能为null,所以需要安全调用 ?.  或者 非空断言调用 !! .

str?.length   //返回null

str!!.length  //就会得到nullpointer空指针异常


5、..符号 以及 in 和 !in 操作符

..代表从a到b,包括a和b,这是一个闭区间运算符,in和!in就是在不在这个区间里面

例如:i  in 1..10 // 等价于 1 <= i && i <= 10


6、多行输入符 """

三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,

其中的不可见字符比如/n和/t都会被保留

val str = """

             one

             two

              """  

//等价于         

 val str = "one\ntwo"     

 val str =  "one" +"\n"+"two"


7、::符号

得到类的Class对象

startActivity(Intent(this, AboutAppActivity::class.java)


你可能感兴趣的:(学习Kotlin中出现的常用操作符)