关键字 | 说明 |
abstract | 抽象声明,被声明的内容默认为open状态 |
annotation | 注解声明 |
by | 委托 |
class | 类声明 |
companion | 伴生对象声明 |
const | 静态常量声明 |
constructor | 声明构造函数 |
crossinline | 标记内联函数的lambda表达式参数,标识该lambda函数返回为非局部返回,不允许非局部控制流 |
data | 数据类,声明的类默认实现equals()/hashCode()/toString/copy()/componentN() |
enum | 声明枚举类 |
field | 属性的幕后字段 |
fun | 声明函数 |
import | 声明导入 |
in | 声明包含,如 xx in xxx |
init | 初始化块,常见非constructor声明构造函数时用于对数据的初始化 |
inline | 声明内联函数 |
inner | 声明内部类 |
interface | 声明接口类 |
internal | 可见性修饰符,相同模块内可见 |
lateinit var | 延迟初始化,避免空检查 |
noinline | 禁用内联,标记内联函数不需要内联的参数 |
object | 对象表达式、对象声明 |
open | 声明类或方法是开放的,允许其它类继承;kotlin类默认都是final,禁止继承 |
operator | 标记重载操作符的函数 |
out | 修饰类型参数,使其协变:只可以被生产而不可以被消费 |
override | 标注重写 |
package | 声明包 |
private | 私有修饰符,仅类内可见 |
protected | 保护修饰符,仅类内和子类内可见 |
public | 公有的修饰符,kotlin中默认可见,一般都省略不写 |
reified | 限定类型参数,需要配合inline关键字使用 |
sealed | 声明密封类,功能类似枚举 |
super | 访问超类的方法、属性 |
suspend | 声明挂起函数,该函数只能从协程和其他挂起函数中调用 |
throw | 抛出异常 |
typealias | 声明类型别名 |
val | 声明只读属性,不可再更改 |
var | 声明可变属性 |
vararg | 修饰函数参数:声明为可变数量参数 |
is | 类型的比较,相当于java的 instanceof |
as | 类型强转,相当于Java的(Object)xx |