fun main(args: Array<String>) {
//如果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)
}