1.?代表此变量可以为空,如果 str 的内容不是数字返回 null:
fun parseInt(str: String): Int? { // …… }
2.类型自动转换
is 运算符检测⼀个表达式是否某类型的⼀个实例。如果⼀个不可变的局部变量或属性已经判断出为某 类型,那么检测后的分⽀中可以直接当作该类型使⽤,⽆需显式转换:
fun getStringLength(obj: Any): Int? {
if (obj is String) {
// `obj` 在该条件分⽀内⾃动转换成 `String`
return obj.length
}
// 在离开类型检测分⽀后,`obj` 仍然是 `Any` 类型
return null
}
3.创建数据类,如下
data class Customer(val name: String, val email: String)
会为 Customer 类提供以下功能:
所有属性的 getters(对于 var 定义的还有 setters)
equals()
hashCode()
toString()
copy()
所有属性的 component1() 、component2() ……等等
4.延迟属性
val p: String by lazy {
// 计算该字符串
}
5.扩展函数
<