1、null安全(?)
fun main(args: Array<String>) {
val str: String? = null
}
变量str表示初始化值可以为null
2、安全调用(?.)
fun main(args: Array<String>) {
val str: String? = "Kotlin"
println("str的长度为${str?.length}")
}
(?.) 表示如果str不为null返回str的长度,如果为null返回“null”,也可以为调用方法(如果对象不为null,调用其方法)
3、Elvis运算(?:)
fun main(args: Array<String>) {
val str: String? = "Kotlin"
val len = str?.length ?: -1
// val len = (str?.length) ?: (-1)
}
如果“?:”左边的表达式不为null,则返回左边的表达式的值,否则返回"?:"右边的表达式
4、强制调用(!!.)
fun main(args: Array<String>) {
var str: String? = "Kotlin"
println(str!!.length)//6
str = null
println(str!!.length)//空指针异常
}
“!!.” 强制调用可空变量的属性或者方法
5、字符串模板(${})
fun main(args: Array<String>) {
var str: String? = "Kotlin"
val leng = str?.length
println("str的长度为${leng}")
}
Kotlin可以在字符串中嵌入变量或者表达式,只要将变量或者表达式放入${}中即可