摘要: 硬关键字:始终解释为关键字,不能用作标识符 as — 用于类型转换 — 为导入指定一个别名 as? 用于安全类型转换 break 终止循环的执行 class 声明一个类 continue 继续最近层循环的下一步 do 开始一个 do/while 循环(后置条件的循环) else 定义一个 if 表达 阅读全文
posted @ 2022-01-28 03:44 王世桢 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 1.3.70 中引入了 @RequireOptIn 与 @OptIn 注解以取代先前使用的 @Experimental 与 @UseExperimental;同时 -Xopt-in 编译器选项也取代了 -Xuse-experimental。 Kotlin 标准库提供了一种机制,用于要求并明确同意使用 阅读全文
posted @ 2022-01-28 02:57 王世桢 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 通过使用命名得当的函数作为构建器,结合带有接收者的函数字面值,可以在 Kotlin 中创建类型安全、静态类型 的构建器 类型安全的构建器可以创建基于 Kotlin 的适用于采用半声明方式构建复杂层次数据结构领域专用语言(DSL)。 以下是构建器的一些示例应用场景: — 使用 Kotlin 代码生成标 阅读全文
posted @ 2022-01-28 02:27 王世桢 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 作用域函数 Kotlin 标准库包含几个函数,它们的唯一目的是在对象的上下文中执行代码块。当对一个对象调用这样的函数 并提供一个 lambda 表达式时,它会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。这些 函数称为作用域函数。共有以下五种:let 、run 、with 、appl 阅读全文
posted @ 2022-01-27 06:14 王世桢 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 类引用 最基本的反射功能是获取 Kotlin 类的运行时引用。要获取对静态已知的 Kotlin 类的引用,可以使用 类字面值 语法 val c = MyClass::class 请注意,Kotlin 类引用与 Java 类引用不同。要获得 Java 类引用,请在 KClass 实例上使用 .java 阅读全文
posted @ 2022-01-27 05:39 王世桢 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 注解声明 注解是将元数据附加到代码的方法。要声明注解,请将 annotation 修饰符放在类的前面 annotation class Fancy 注解的附加属性可以通过用元注解标注注解类来指定 — @Target指定可以用该注解标注的元素的可能的类型(类、函数、属性、表达式等); — @Reten 阅读全文
posted @ 2022-01-27 05:05 王世桢 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 异常类 Kotlin 中所有异常类都是 Throwable 类的子孙类。每个异常都有消息、堆栈回溯信息以及可选的原因 使用 throw-表达式来抛出异常 throw Exception("Hi There!") 使用 try-表达式来捕获异常: try { // 一些代码 } catch (e: S 阅读全文
posted @ 2022-01-27 04:37 王世桢 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 可空类型与非空类型 Kotlin 的类型系统旨在从我们的代码中消除 NullPointerException 。NPE 的唯一可能的原因可能是: — 显式调用 throw NullPointerException() — 使用了下文描述的 !! 操作符 — 有些数据在初始化时不一致,例如当 — 传递 阅读全文
posted @ 2022-01-27 04:25 王世桢 阅读(60) 评论(0) 推荐(0) 编辑
摘要: Kotlin允许我们为自己的类型提供预定义的一组操作符的实现。这些操作符具有固定的符号表示(如 + 或 *) 和固定的优先级。为实现这样的操作符,我们为相应的类型(即二元操作符左侧的类型和一元操作符的参数类 型)提供了一个固定名字的成员函数或扩展函数。重载操作符的函数需要用 operator 修饰符 阅读全文
posted @ 2022-01-27 03:55 王世桢 阅读(89) 评论(0) 推荐(0) 编辑
摘要: Kotlin 中有两种类型的相等性: — 结构相等(用 equals() 检测); — 引用相等(两个引用指向同一对象)。 结构相等 结构相等由 ==(以及其否定形式 !=)操作判断。按照惯例,像 a == b 这样的表达式会翻译成: a?.equals(b) ?: (b null) 也就是说如果 阅读全文
posted @ 2022-01-27 03:01 王世桢 阅读(63) 评论(0) 推荐(0) 编辑