Kotlin
文章平均质量分 91
友农
一名大学生
展开
-
Kotlin新手教程九(协程)
async实际上启动了一个单独的协程,与launch类似,但是launch返回一个Job且无附带任何结果值,async返回一个Deferred(一个轻量级的非阻塞future),可以使用.await()在一个延期时间取得最终的值。注意,如果只是在 println 中调用了 await() 而不首先调用 start() ,这将形成顺序行为,因为 await() 会启动协程并等待其完成,这不是 lazy 模式的预期结果。} 内部的代码块提取到独立的函数中。如果我们忘记保持对新启动的协程的引用,它还会继续运行。原创 2023-02-22 18:09:12 · 1164 阅读 · 1 评论 -
Kotlin新手教程八(泛型)
然而, 内联函数的具体化的类型参数会由调用处内联函数体中的类型实参所代入,因此可以用于类型检测与转换, 与上述泛型类型的实例具有相同限制。运行时泛型类型的实例不保留关于其类型实参的任何信息。有些时候, 你可能想表示你并不知道类型参数的任何信息, 但是仍然希望能够安全地使用它. 这里所谓"安全地使用"是指, 对泛型类型定义一个类型投射, 要求这个泛型类型的所有的实体实例, 都是这个投射的子类型。in可以使类型参数逆变,只能用作输入,也就是可以作为入参的类型但是无法作为返回值的类型。(消费者使用)修饰符。原创 2023-02-21 15:38:24 · 692 阅读 · 0 评论 -
Kotlin新手教程七(委托)
委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。kotlin中使用by实现委托。原创 2023-02-21 14:30:02 · 485 阅读 · 0 评论 -
Kotlin新手教程六(数据类、密封类、枚举类、泛型)
在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例。有些时候, 你可能想表示你并不知道类型参数的任何信息, 但是仍然希望能够安全地使用它. 这里所谓"安全地使用"是指, 对泛型类型定义一个类型投射, 要求这个泛型类型的所有的实体实例, 都是这个投射的子类型。一个枚举类可以实现接口(但不能从类继承),可以为所有条目提供统一的接口成员实现,也可以在相应匿名类中为每个条目提供各自的实现。泛型一般可以用于类、接口、方法上。原创 2023-02-20 11:43:19 · 493 阅读 · 0 评论 -
Kotlin新手教程五(扩展)
这样的扩展可以在对象变量上调用, 即使其值为 null,并且可以在函数体内检测 this == null,这能让你在没有检测 null 的时候调用 Kotlin 中的toString():检测发生在扩展函数的内部。这就是因为扩展函数式静态分发的:调用的扩展函数是由函数调用所在的表达式的类型来决定的, 而不是由表达式运行时求值结果决定的。对于分发接收者与扩展接收者的成员名字冲突的情况,扩展接收者优先。扩展听起来很强大,但实际不是真正的修改他们所拓展的类,仅仅是可以通过使用该类型的变量用点表达式调用新函数。原创 2023-02-17 17:54:45 · 1275 阅读 · 0 评论 -
Kotlin新手教程四(抽象类和接口)
上例中D调用 super< A >.foo()和 super< B >.foo(),所以如果调用D的foo方法就会输出AB,我们也可以选择调用任意一个,这样其实是比Java更好的,因为在Java里面如果要实现多个接口,且里面有重复的方法名,那么其实覆盖不覆盖也无所谓,因为没有方法体。这一规则既适用于继承单个实现(bar())的方法也适用于继承多个实现(foo())的方法。通过 SAM 转换, Kotlin 可以将其签名与接口的单个抽象方法的签名匹配的任何 lambda 表达式转换为实现该接口的类的实例。原创 2023-02-17 14:44:32 · 514 阅读 · 0 评论 -
Kotlin新手教程三(类与继承)
在构造派生类的新实例的过程中,第一步完成其基类的初始化(在之前只有对基类构造函数参数的求值),因此发生在派生类的初始化逻辑运行之前。也就是说,当你实例化一个子类时,首先会初始化父类的主构造方法,父类的初始化代码块和初始化属性,接下来才是子类的。2.主构造器不能包含除属性声明的任何代码块,初始化的代码可以放到以init关键字作为前缀的初始代码块中。注:使用override修饰的方法实际效果也相当在重写的情况下使用open修饰了,如果不想再被其子类重写,那么可以使用final修饰。原创 2023-02-17 11:51:09 · 1286 阅读 · 0 评论 -
Kotlin新手教程二(Kotlin基本数据类型及基础语法)
Kotlin 中没有基础数据类型,只有封装的数字类型,你每定义的一个变量,其实 Kotlin 帮你封装了一个对象,这样可以保证不会出现空指针。和 Java 不一样,Kotlin 中的 Char 不能直接和数字操作(但是可以显示把字符转换为数字),Char 必需是单引号 ’ 包含起来的。数组在 Kotlin 中使用 Array 类来表示,它定义了 get 与 set 函数(按照运算符重载约定这会转变为 [])以及 size 属性,以及一些其他有用的成员函数。这里虽然都是将num的值赋值给a和b,但是Int?原创 2023-02-16 17:33:20 · 620 阅读 · 0 评论 -
Kotlin新手教程一(Kotlin简介及环境搭建)
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,它也可以被编译成为 JavaScript 源代码(方便在没有JVM的设备上运行)。它主要是由俄罗斯圣彼得堡的 JetBrains 开发团队所发展出来的编程语言,其名称来自于圣彼得堡附近的科特林岛。原创 2023-02-16 15:21:25 · 2227 阅读 · 0 评论