问题背景

kotlin开发和学习过程中,会使用到和接触到很多关键,现对于梳理并持续更新。

问题分析

1、Kotlin的硬关键字

关键字 说明 as 用于做类型转换或为 import 语句指定别名 as? 类型安全 的类型转换运算符。 fun 声 明函数 in 在 for 循环中使用; in 还可作为双目运算符,检查 一个值是否处于区间或集合 内; in 也可在when 表达式中使用; in 还可用于修饰泛型参数,表明该泛型参数支持逆变 !in 可作为双目运算符 的反义词:!in 也可在 when 表达式中使用 is 用于做类型检查(类 Java instanceof) 或在 when 表达式中使用 !is 用于做类型检查( is 的反义词〉或在 when 表达式中使用 object 用于声明对象表达式或定义命名对象 typealias 用于定义类型别名。 val 声明只读属性或变量。 var 声明可变属性或变量。 when 用于 when 表达式。while一一-用于 while 循环或 do while 循环

2、Kotlin 的软关键字

关键字 说明 by 用于将接口或祖先类的实现委托给其他对象。 constructor 用于声明构造器。 delegate 用于指定该注解修饰委托属性存储其委托实例的字段 dynamic 主要用于在 Kotlin/JavaScript 中引用 一个动态类型 field 用于指定该注解修饰属性的幕后字段。 file 用于指定该注解修饰该源文件本身 get 用于声明属性的 getter 方法,或者用于指定该注解修饰属性的 getter 方法 init 用于声明初始化块 param 用于指定该注解修饰构造器参数 property 用于指定该注解修饰整个属性(这种目标的注解对 Java 不可见,因为 Java并没有真正的属性)。 set 用于声明属性的 setter 方法,或者用于指定该注解修饰属性的 setter 方法 where 用于为泛型参数增加限制。

3、Kotlin 的修饰符关键字

关键字 说明 annotation 用于修饰一个注解类。 companion 用于声明一个伴生对象 const 用于声明编译时常量 crossinline 用于禁止在传给内联函数的 Lambd 表达式中执行非局部返回 data 用于声明数据类。 enum 用于声明枚举 external 用于声明某个方法不由 Kotlin 实现(与 Java 的 native 相似〉。 infix 声明该函数能以双目运算符的格式执行 inline 用于声明内联函数, Lambda 表达式可在内联函数中执行局部返回。 inner 用于声明内部类,内部类可以访问外部类的实例 internal 用于表示被修饰的声明只能在当前模块内可见 lateinit 用于修饰 non-null 属性,用于指定该属性可在构造器以外的地方初始化 noinline 用于禁止内联函数中个别 Lambda 表达式被内联化 open 用于修饰类,表示该类可派生子类;或者用于修饰成员,表示该成员可以被重写。 out 用于修饰泛型参数,表明该泛型参数支持协变。 reified 用于修饰内联函数中的泛型形参,接下来在该函数中就可像使用普通类型一样使用该类型参数。 sealed 用于声明一个密封类。 suspend 用于标识一个函数后 Lambda 表达式可作为暂停。 tailrec 用于修饰一个函数可作为尾随递归函数使用。 vararg 用于修饰形参,表明该参数是个数可变的形参。

问题总结

本文初步梳理kotlin的部分关键字,持续更新,有兴趣的同学可以参考,并进一步深入研究。