随笔分类 - Kotlin
摘要:
1 前言 协程的 select 是一种用于异步操作的选择器,它允许同时等待多个挂起函数的结果,并在其中一个完成时执行相应的操作。 能够被 select 的事件都是 SelectClause,在 select.kt 中有定义,如下。 public interface SelectBuilder
阅读全文
1 前言 协程的 select 是一种用于异步操作的选择器,它允许同时等待多个挂起函数的结果,并在其中一个完成时执行相应的操作。 能够被 select 的事件都是 SelectClause,在 select.kt 中有定义,如下。 public interface SelectBuilder
阅读全文
摘要:
1 前言 Channel 是一个并发安全的阻塞队列,可以通过 send 函数往队列中塞入数据,通过 receive 函数从队列中取出数据。 当队列被塞满时,send 函数将被挂起,直到队列有空闲缓存;当队列空闲时,receive 函数将被挂起,直到队列中有新数据存入。 Channel 中
阅读全文
1 前言 Channel 是一个并发安全的阻塞队列,可以通过 send 函数往队列中塞入数据,通过 receive 函数从队列中取出数据。 当队列被塞满时,send 函数将被挂起,直到队列有空闲缓存;当队列空闲时,receive 函数将被挂起,直到队列中有新数据存入。 Channel 中
阅读全文
摘要:
1 前言 Flow 是 Kotlin 标准库中的一个新的异步流处理框架,旨在简化异步数据流的操作和处理,它提供了一种声明式的方式来处理数据流。 Flow 中一些接口调用有些类似 Sequence(详见 → Sequence简介),协程的使用详见 → 协程。 Flow 有以下特性和概念。
阅读全文
1 前言 Flow 是 Kotlin 标准库中的一个新的异步流处理框架,旨在简化异步数据流的操作和处理,它提供了一种声明式的方式来处理数据流。 Flow 中一些接口调用有些类似 Sequence(详见 → Sequence简介),协程的使用详见 → 协程。 Flow 有以下特性和概念。
阅读全文
摘要:
1 前言 相较于 C# 中的协程(详见 → 【Unity3D】协同程序),Kotlin 中协程更灵活,难度更大。 协程是一种并发设计模式,用于简化异步编程,它允许以顺序化的方式表达异步操作,避免回调地狱等问题。使用协程,可以将异步操作的代码像同步代码一样写,而无需显式地管理线程。 在 K
阅读全文
1 前言 相较于 C# 中的协程(详见 → 【Unity3D】协同程序),Kotlin 中协程更灵活,难度更大。 协程是一种并发设计模式,用于简化异步编程,它允许以顺序化的方式表达异步操作,避免回调地狱等问题。使用协程,可以将异步操作的代码像同步代码一样写,而无需显式地管理线程。 在 K
阅读全文
摘要:
1 委托模式简介 委托模式的类图结构如下。 对应的 Kotlin 代码如下。 fun main() { var baseImpl = BaseImpl() var baseWrapper = BaseWrapper(baseImpl) baseWrapper.myFun1() // 打印:
阅读全文
1 委托模式简介 委托模式的类图结构如下。 对应的 Kotlin 代码如下。 fun main() { var baseImpl = BaseImpl() var baseWrapper = BaseWrapper(baseImpl) baseWrapper.myFun1() // 打印:
阅读全文
摘要:
1 匿名类 1)无继承 fun main() { var obj = object { var name: String = "zhang" override fun toString(): String { return name } } println(obj) // zhang } 2
阅读全文
1 匿名类 1)无继承 fun main() { var obj = object { var name: String = "zhang" override fun toString(): String { return name } } println(obj) // zhang } 2
阅读全文
摘要:
1 前言 序列(Sequence)是 Kotlin 中为方便操作集合及其元素而定制的接口,是一个延迟获取数据的集合,只有需要元素时才会生产元素。在处理大量数据时,序列可以显著地提升性能。 Sequence 类似 Java 中的 Stream,详见 → Stream 总结。Sequence 有
阅读全文
1 前言 序列(Sequence)是 Kotlin 中为方便操作集合及其元素而定制的接口,是一个延迟获取数据的集合,只有需要元素时才会生产元素。在处理大量数据时,序列可以显著地提升性能。 Sequence 类似 Java 中的 Stream,详见 → Stream 总结。Sequence 有
阅读全文
摘要:
1 List Java 的 List、Set、Map 介绍见 → Java容器及其常用方法汇总。 1.1 创建 List 1.1.1 emptyList var list = emptyList<String>() // 创建空List 1.1.2 List 构造函数 var list1 = L
阅读全文
1 List Java 的 List、Set、Map 介绍见 → Java容器及其常用方法汇总。 1.1 创建 List 1.1.1 emptyList var list = emptyList<String>() // 创建空List 1.1.2 List 构造函数 var list1 = L
阅读全文
摘要:
1 源码 public class Array<T> { public val size: Int public inline constructor(size: Int, init: (Int) -> T) public operator fun get(index: Int): T // 重载a
阅读全文
1 源码 public class Array<T> { public val size: Int public inline constructor(size: Int, init: (Int) -> T) public operator fun get(index: Int): T // 重载a
阅读全文
摘要:
1 类的扩展 Kotlin 提供了扩展类或接口的操作,而无需通过类继承或使用装饰器等设计模式,来为某个类添加一些额外的属性或函数,我们只需要通过一个被称为扩展的特殊声明来完成。通过这种机制,我们可以将那些第三方类不具备的功能强行进行扩展,方便我们的操作。 1.1 扩展内置类 1.1.1 扩展属性
阅读全文
1 类的扩展 Kotlin 提供了扩展类或接口的操作,而无需通过类继承或使用装饰器等设计模式,来为某个类添加一些额外的属性或函数,我们只需要通过一个被称为扩展的特殊声明来完成。通过这种机制,我们可以将那些第三方类不具备的功能强行进行扩展,方便我们的操作。 1.1 扩展内置类 1.1.1 扩展属性
阅读全文
摘要:
1 一元运算符函数 1.1 符号和函数 符号 函数 +a a.unaryPlus() -a a.unaryMinus() !a a.not() a++ a.dec() a-- a.inc() 1.2 案例 fun main() { var stu = Student("Tom", 13) print
阅读全文
1 一元运算符函数 1.1 符号和函数 符号 函数 +a a.unaryPlus() -a a.unaryMinus() !a a.not() a++ a.dec() a-- a.inc() 1.2 案例 fun main() { var stu = Student("Tom", 13) print
阅读全文
摘要:
1 前言 Kotlin 是面向对象编程语言,与 Java 语言类似,都有类、对象、属性、构造函数、成员函数,都有封装、继承、多态三大特性,不同点如下。 Java 有静态(static)代码块,Kotlin 没有; Java 有静态(static)函数,Kotlin 没有; Java 构造函数名与
阅读全文
1 前言 Kotlin 是面向对象编程语言,与 Java 语言类似,都有类、对象、属性、构造函数、成员函数,都有封装、继承、多态三大特性,不同点如下。 Java 有静态(static)代码块,Kotlin 没有; Java 有静态(static)函数,Kotlin 没有; Java 构造函数名与
阅读全文
摘要:
1 常规调用 Lambda 表达式总结 中对 Java 的 Lambda 表达式进行了总结,本文将对 Kotlin 中的 Lambda 表达式进行总结。 1.1 无参函数 fun main() { var myFun: () -> Unit = { println("test") } myFun
阅读全文
1 常规调用 Lambda 表达式总结 中对 Java 的 Lambda 表达式进行了总结,本文将对 Kotlin 中的 Lambda 表达式进行总结。 1.1 无参函数 fun main() { var myFun: () -> Unit = { println("test") } myFun
阅读全文
摘要:
1 常规函数 1.1 无参函数 fun main() { myFun() } fun myFun() { println("myFun") // 打印: myFun } 1.2 有参函数 1)常规调用 fun main() { myFun("myFun") // 打印: myFun } fun
阅读全文
1 常规函数 1.1 无参函数 fun main() { myFun() } fun myFun() { println("myFun") // 打印: myFun } 1.2 有参函数 1)常规调用 fun main() { myFun("myFun") // 打印: myFun } fun
阅读全文
摘要:
1 选择结构 Kotlin 中选择结构主要包含 if -else、when 语句,并且可以返回结果。 1.1 if-else 1.1. 条件选择 fun main() { var score = 85 if (score >= 90) { println("优秀") } else if (sco
阅读全文
1 选择结构 Kotlin 中选择结构主要包含 if -else、when 语句,并且可以返回结果。 1.1 if-else 1.1. 条件选择 fun main() { var score = 85 if (score >= 90) { println("优秀") } else if (sco
阅读全文
摘要:
1 变量 1.1 变量声明 var a : Int // 声明整数类型变量 var b : Int = 1 // 声明整数类型变量, 同时赋初值为1 var c = 1 // 声明整数类型变量, 同时赋初值为1 val d = 1 // 声明整数类型常量, 值为1(后面不能改变d的值) 变量命名
阅读全文
1 变量 1.1 变量声明 var a : Int // 声明整数类型变量 var b : Int = 1 // 声明整数类型变量, 同时赋初值为1 var c = 1 // 声明整数类型变量, 同时赋初值为1 val d = 1 // 声明整数类型常量, 值为1(后面不能改变d的值) 变量命名
阅读全文
摘要:
1 前言 Kotlin 是一种现代但已经成熟的编程语言,由 JetBrains 公司于 2011 年设计和开发,并在 2012 年开源,在 2016 年发布 v1.0 版本。在 2017 年,Google 宣布 Kotlin 正式成为 Android 开发语言,这进一步推动了 Kotlin 的普
阅读全文
1 前言 Kotlin 是一种现代但已经成熟的编程语言,由 JetBrains 公司于 2011 年设计和开发,并在 2012 年开源,在 2016 年发布 v1.0 版本。在 2017 年,Google 宣布 Kotlin 正式成为 Android 开发语言,这进一步推动了 Kotlin 的普
阅读全文

浙公网安备 33010602011771号