null
。null
,只有声明成空安全类型才可以。// 在类型后面加个?
var str: String? = "Hello Kotlin"
str = null
?:
:非空直接返回,为空返回后面的值。var str: String? = "This is a String"
val ret = str ?: "default value"
println(ret)
str = null
val ret2 = str ?: "default value"
println(ret2)
!!
:强制取值,非空直接返回,为空报错。var str: String? = "This is a String"
val ret = str!!
println(ret)
str = null
val ret2 = str!! // 报错
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
字符串可以包含模板表达式,会求值并把结果合并到字符串中。模板表达式以美元符$
开头。
val str = "Hello"
// 单个值
println("$str world")
// 表达式
println("${str.uppercase()}")
is
或者!is
在运行时检测对象是否符合给定类型。as
后者as?
进行类型转换,后者返回的是空安全类型。val str = "Hello Kotlin"
// 类型判断
println(str is String)
println(str !is String)
// 类型转换
str as Int // 运行时报错
str as? Int