-
变量延迟初始化
Kotlin语言对变量是否为空十分严格,而为了满足Kotlin空指针检查语法标准,需要做很多非空判断。
当你确某个变量在调用前会被初始化时,就可以使用延迟初始化关键字lateinit -
密封类
提一下这个概念,不是很常用,关键字是sealed class,使用之后,Kotlin会自动检查该密封类有哪些子类,并强制要求对所以子类都进行处理,因此可以摒弃没有实际作用的else分支。 -
扩展函数
概念:在不修改某个类的源码的情况下,向该类添加新的函数。
建议向哪个类添加扩展函数,就定义同名Kt文件夹,便于查找。
//基本格式
fun ClassName.methodName(param1: Int, param2: Int):Int {
return 0
}
4.运算符重载
关键字:operator,可以进行多重重载
class obj{
operator fun plus(obj: Obj): Obj{
...}
}
eg:
class Money(val value: Int){
operator fun plus(money: Money):Money{
val sum = value + money.value
return (Money)sum
}
operator fun plus(newValue: Int): Money{
val sum = value + newValue
return (Money)sum
}
}
这样money对象既可以对象之间相加,也可以与整型数据相加了!
Activity好复杂啊~~