【9】Kotlin学习之运算符? ?: !! as等

? 与 ?.

在kotlin中默认变量是不可为空的,想要一个变量为空需加? 如下:

data class A(val a: String, val b: Int) {
    
    
    fun print() {
    
    
        println("test")
    }
}

fun main() {
    
    
    var a: A? = null
}

那么在代码中使用此变量就需要用到非空运算符?.如下

fun main() {
    
    
    var a: A? = null
    println(a?.print())
}

这里需要注意的是其实内部执行的代码是if(a != null){ a.print() }
也就是说print方法体并不会执行,实际使用时需要注意。

?:

非空运算符相当于一个判断是否为空的三目运算,看以下结果
代码:

fun main() {
    
    
    var a :String? = "aaa"
    println(a?:"it's null")
    a = null
    println(a?:"it's null")
}

结果:

aaa
it's null

as 与 is

as 类型转换符号
is JAVA中的instanceof

!!

强制类型为非空,此时如果类型为空会触发nullpointException

猜你喜欢

转载自blog.csdn.net/a940659387/article/details/116457989