关键字与操作符
- 用于
- 为导入指定一个别名
as?
用于break
终止循环的执行class
声明一个continue
继续最近层循环的下一步do
开始一个 (后置条件的循环)else
定义一个 if 表达式条件为 false 时执行的分支false
指定的“假”值for
开始一个 for 循环fun
声明一个if
开始一个 if 表达式in
!in
interface
声明一个is
- 检测一个值具有指定类型
- 在 用于上述目的
!is
- 检测一个值不具有指定类型
- 在 用于上述目的
null
是表示不指向任何对象的对象引用的常量object
同时声明一个类及其实例package
指定return
从最近层的函数或匿名函数返回super
this
throw
true
指定布尔类型的“真”值try
typeof
保留以供未来使用val
声明一个只读属性或var
声明一个可变属性或when
开始一个 when 表达式(执行其中一个给定分支)while
开始一个 (前置条件的循环)
by
catch
开始一个处理指定异常类型的块constructor
声明一个delegate
用作注解使用处目标dynamic
引用一个 Kotlin/JS 代码中的field
用作注解使用处目标file
用作finally
开始一个当 try 块退出时总会执行的块get
- 声明
- 用作注解使用处目标
init
开始一个初始化块param
用作property
用作注解使用处目标receiver
用作set
- 声明属性的 setter
- 用作
setparam
用作注解使用处目标where
指定
actual
表示多平台项目中的一个平台相关实现abstract
将一个类或成员标记为annotation
声明一个注解类companion
声明一个const
将属性标记为编译期常量crossinline
禁止data
指示编译器为类生成典型成员enum
声明一个expect
将一个声明标记为平台相关,并期待在平台模块中实现。external
将一个声明标记为不是在 Kotlin 中实现(通过 访问或者在 JavaScript 中实现)final
禁止infix
允许以中缀表示法调用函数inline
告诉编译器inner
允许在嵌套类中引用外部类实例internal
将一个声明标记为lateinit
允许在构造函数之外初始化非空属性noinline
关闭open
允许一个类子类化或覆盖成员out
将类型参数标记为override
将一个成员标记为超类成员的覆盖private
将一个声明标记为protected
将一个声明标记为在当前类及其子类中可见public
将一个声明标记为reified
将内联函数的类型参数标记为在运行时可访问sealed
声明一个(限制子类化的类)suspend
将一个函数或 lambda 表达式标记为挂起式(可用做协程)tailrec
将一个函数标记为(允许编译器将递归替换为迭代)vararg
允许一个参数传入可变数量的参数
field
用在属性访问器内部来引用该it
用在 lambda 表达式内部来隐式引用其参数
+
、 、*
、/
、%
—— 数学操作符*
也用于
=
- 赋值操作符
- 也用于指定参数的默认值
+=
、-=
、*=
、/=
、%=
——++
、--
—— 递增与递减操作符&&
、||
、!
—— 逻辑“与”、“或”、“非”操作符(对于位运算,请使用相应的)==
、!=
—— 相等操作符(对于非原生类型会翻译为调用equals()
)===
、!==
——<
、>
、<=
、>=
—— 比较操作符(对于非原生类型会翻译为调用compareTo()
)[
、]
—— (会翻译为调用get
与set
)!!
断言一个表达式非空?.
执行(如果接收者非空,就调用一个方法或访问一个属性)?:
如果左侧的值为空,就取右侧的值(elvis 操作符)::
创建一个或者一个类引用..
创建一个:
分隔声明中的名称与类型?
将类型标记为可空->
- 分隔 的参数与主体
- 分隔在函数类型中的参数类型与返回类型声明
- 分隔 分支的条件与代码体
@
- 引入一个注解
- 引入或引用一个
- 引入或引用一个 lambda 表达式标签
- 引用一个来自外部作用域的
- 引用一个外部超类
;
分隔位于同一行的多个语句- 在中引用变量或者表达式
_
- 在 lambda 表达式中代替未使用的参数
- 在中代替未使用的参数