- 空检查
代码:
fun main() {
var info:string
println(info)
}
在Java中可以直接不给默认值,但是在kotlin中必须给默认值不然就会报错
正确写法应该为:
fun main() {
var info:String=" "
println("info=$info")
}
执行结果:
如果我们给一个null,也会报错
fun main() {
var info:String=null
println("info=$info")
}
报错信息:
这是一个危险的行为,必须发送一个广播告诉所有地方,?代表发送广播,所有使用该变量的地方必须进行补救措施规避
代码如下:
fun main() {
var info:String?=null //?代表广播,当为null时发送给所有使用这个变量的地方,使用的地方必须使用补救措施去规避
//补救措施1: ? 如果info为空,后面就不执行就不会引发空指针异常
info?.length
println("info.length()=$info?.length")
//补救措施2:判空(和java一样)
if(info!==null)
info.length
println("info.length()=$info.length")
//补救措施3: !! 无论info是否为null 都执行,但是会报空指针异常(和java一样)
info!!.length
println("info.length()=$info!!.length")
}
执行结果