kotlin--空安全(可空类型和非空类型,Elvis 操作符,!! 操作符)

fun main(args: Array) {

    //如果a没有指明可以为空,那么赋null值的时候编译就不通过
    var a:String ="1111"
    var L=a.length


    //如果变量b声明了可以为空值,那么赋null值得时候编译通过
    var b:String ?
    b=null
    //当b=null的时候,编译器不允许取长度值;
    //var LL=b.length //报错!!!!!!!!!!!!!!!!!

    //可以用判断语句先判断是否为空,
    //判断方法一
    var res=if(b!=null)b.length else "b为空"
    println(res)
    //第二种判断方法
    if(b!=null&&b.length>0){
        println("b不为空!")
    }else{
        println("b为空")
    }
    println("============================================")
    //使用安全操作符
    //说明: 如果b不为空,就返回长度,为空就返回null;
    println(b?.length)   //输出结果: null
    println("============================================")
    //Elvis操作符,?:左边的返回值不为空则返回,否则返回?:右边的值
    var len = a.length?: -1
    println("============================================")
    // !!操作符,抛出一个非空的B 或者空npe(nullPointException)
    var leng=a!!.length
    println(leng)



 


}

你可能感兴趣的:(kotlin)