let函数
使用场景:可空变量的操作,无需判空
p?.let {it.name = "lily"it.age = "21"}
also函数
使用场景:多个扩展函数链式调用(返回值是本身)
p?.also {it.name = "deni"it.age = "26"}?.displayInfo()
with函数
使用场景:可以省去类名重复,直接调用类的方法就行
with(p) {name = "leon"age = "26"}
run函数
使用场景:既可以空变量的操作,无需判空,又可以省去类名重复,直接调用类的方法就行
apply函数
使用场景:跟run函数类似,还可以链式调用