版权声明:本文为延成原创文章,转载请标明出处
学习kotlin可直接查看Kotlin官方文档,既方便又实用
关键词和运算符
硬关键词
以下标记始终被解释为关键字,不能用作标识符:
-
as
- 用于类型转换
- 指定导入的别名
-
as?用于安全型铸件
-
break 终止循环的执行
-
class宣布一个班级
-
continue 进入最近的封闭循环的下一步
-
do开始一个do / while循环(带后置条件的循环)
-
else定义if表达式的分支,该分支在条件为false时执行
-
false指定布尔类型的“false”值
-
for开始一个for循环
-
fun声明一个函数
-
if开始一个if表达式
-
in
- 指定在for循环中迭代的对象
- 用作中缀运算符来检查值是否属于范围,集合或定义“包含”方法的其他实体
- 在用于相同目的的表达式时使用
- 将类型参数标记为逆变
-
!in
- 用作运算符来检查值是否不属于范围,集合或定义“包含”方法的其他实体
- 在用于相同目的的表达式时使用
-
interface声明一个接口
-
is
- 检查某个值是否具有某种类型
- 在用于相同目的的表达式时使用
-
!is
- 检查值是否具有某种类型
- 在用于相同目的的表达式时使用
-
null 是表示不指向任何对象的对象引用的常量
-
object同时声明一个类及其实例
-
package指定当前文件的包
-
return 从最近的封闭函数或匿名函数返回
-
super
- 指的是方法或属性的超类实现
- 从辅助构造函数中调用超类构造函数
-
this
- 指当前的接收器
- 从辅助构造函数调用同一个类的另一个构造函数
-
throw 抛出一个例外
-
true指定布尔类型的“true”值
-
try 开始一个异常处理块
-
typealias声明一个类型别名
-
val声明只读属性或局部变量
-
var声明一个可变属性或局部变量
-
when表达式开始时(执行给定的一个分支)
-
while开始一个while循环(带前置条件的循环)
软关键词
以下标记在适用时在上下文中充当关键字,并可在其他上下文中用作标识符:
- by
- 将接口的实现委托给另一个对象
- 将属性的访问器的实现委托给另一个对象
- catch开始处理特定异常类型的块
- constructor声明主要或辅助构造函数
- delegate用作注释用户站点目标
- dynamic引用Kotlin / JS代码中的动态类型
- field用作注释用户站点目标
- file用作注释用户站点目标
- finally开始一个块,它在try块退出时始终执行
- get
- 声明属性的getter
- 用作注释用户站点目标
- import 将另一个包中的声明导入当前文件
- init开始初始化块
- param用作注释用户站点目标
- property用作注释用户站点目标
- receiver用作注释用户站点目标
- set
- 声明属性的setter
- 用作注释用户站点目标
- setparam用作注释用户站点目标
- where指定泛型类型参数的约束
修饰符关键字
以下标记充当声明修饰符列表中的关键字,可用作其他上下文中的标识符:
- actual表示多平台项目中特定于平台的实现
- abstract将类或成员标记为抽象
- annotation声明一个注释类
- companion声明一个伴侣对象
- const将属性标记为编译时常量
- crossinline禁止传递给内联函数的lambda中的非本地返回
- data指示编译器为类生成规范成员
- enum声明一个枚举
- expect将声明标记为特定于平台,期望在平台模块中实现。
- external将声明标记为不在Kotlin中实现(可通过JNI或JavaScript访问)
- final禁止覆盖会员
- infix允许以中缀表示法调用函数
- inline告诉编译器内联函数以及在调用站点传递给它的lambdas
- inner允许从嵌套类引用外部类实例
- internal标记声明在当前模块中可见
- lateinit允许在构造函数之外初始化非null属性
- noinline关闭传递给内联函数的lambda的内联
- open允许子类化或重写成员
- operator将函数标记为重载运算符或实现约定
- out将类型参数标记为协变
- override将成员标记为超类成员的覆盖
- private将声明标记为在当前类或文件中可见
- protected标记声明在当前类及其子类中可见
- public标记声明在任何地方都可见
- reified将内联函数的类型参数标记为在运行时可访问
- sealed声明一个密封类(具有受限子类的类)
- suspend将函数或lambda标记为挂起(可用作协程)
- tailrec将函数标记为尾递归(允许编译器用迭代替换递归)
- vararg允许为参数传递可变数量的参数
特殊标识符
以下标识符由编译器在特定上下文中定义,并可在其他上下文中用作常规标识符:
- field在属性访问器中使用,以引用属性的支持字段
- it在lambda中用于隐式引用其参数
运算符和特殊符号
Kotlin支持以下运算符和特殊符号:
- +,-,*,/,%-数学运算符
- *也用于将数组传递给vararg参数
- =
- 赋值运算符
- 用于指定参数的默认值
- +=,-=,*=,/=,%=- 赋值运算
- ++,— 递增和递减运算符
- &&,||,!-逻辑“与”,“或”,“不”运算符(用于位运算,使用对应的中缀的功能)
- ==,!=- 相等运算符(转换equals()为非基本类型的调用)
- =,!- 引用平等运算符
- <,>,<=,>=- 比较运算符(翻译成的呼叫compareTo()对于非原始类型)
- [,]- 索引访问运算符(转换为get和的调用set)
- !! 断言表达式为非null
- ?.执行安全调用(如果接收方为非null,则调用方法或访问属性)
- ?:如果左侧值为null(elvis运算符),则获取右侧值
- ::创建成员引用或类引用
- …创造一个范围
- : 将名称与声明中的类型分开
- ?将类型标记为可为空
- ->
- 分离lambda表达式的参数和主体
- 在函数类型中分隔参数和返回类型声明
- 分隔when表达式分支的条件和主体
- @
- 介绍了一个注释
- 引入或引用循环标签
- 介绍或引用lambda标签
- 从外部范围引用’this’表达式
- 引用外部超类
- ; 在同一行上分隔多个语句
- $引用字符串模板中的变量或表达式
- _
- 替换lambda表达式中未使用的参数
- 在解构声明中替换未使用的参数
本文介绍了Kotlin的关键词和运算符。包括硬关键词,如as、break等;软关键词,如by、catch等;修饰符关键字,如actual、abstract等;特殊标识符,如field、it;还列举了Kotlin支持的运算符和特殊符号,如数学、赋值、逻辑运算符等。
556

被折叠的 条评论
为什么被折叠?



