Kotlin
文章平均质量分 83
Kotlin相关技术栈梳理
little_fat_sheep
图形学领域爱好者,未来将在图形渲染(OpenGL、LibGDX、Filament、Unity3D、UE)、图形编解码(FFmpeg)等领域长期深耕。
展开
-
【Kotlin】Channel简介
Channel 是一个并发安全的阻塞队列,可以通过 send 函数往队列中塞入数据,通过 receive 函数从队列中取出数据。当队列被塞满时,send 函数将被挂起,直到队列有空闲缓存;当队列空闲时,receive 函数将被挂起,直到队列中有新数据存入。Channel 中队列缓存空间的大小需要在创建时指定,如果不指定,缓存空间默认是 0。原创 2024-04-27 18:19:21 · 263 阅读 · 0 评论 -
【Kotlin】Flow简介
Flow 是 Kotlin 标准库中的一个新的异步流处理框架,旨在简化异步数据流的操作和处理,它提供了一种声明式的方式来处理数据流。Flow 中一些接口调用有些类似 Sequence(详见 →),协程的使用详见 →。Flow 有以下特性和概念。:Flow 允许以一种非阻塞的方式处理一系列的值或事件,这使得在处理大量数据或涉及 IO 操作时能够更加高效。:只有在收集器(collector)订阅(或启动)了之后才会开始发射(emit)数据。原创 2024-04-24 00:08:34 · 797 阅读 · 1 评论 -
【Kotlin】协程
相较于 C# 中的协程(详见 →),Kotlin 中协程更灵活,难度更大。协程是一种并发设计模式,用于简化异步编程,它允许以顺序化的方式表达异步操作,避免回调地狱等问题。使用协程,可以将异步操作的代码像同步代码一样写,而无需显式地管理线程。在 Kotlin 中,协程由 kotlinx.coroutines 库提供支持。它使用 suspend 修饰符来标记挂起函数(即可暂停执行并稍后恢复执行的函数),这使得编写异步代码更加直观和简单。协程和线程具有以下异同点。原创 2024-04-17 00:50:06 · 1217 阅读 · 1 评论 -
【Kotlin】委托模式
Kotlin 中可以通过 by 关键字实现委托,包括类委托和属性委托,属性委托包含:by T、by lazy、by Delegates.observable、by ::T、by map原创 2024-04-02 00:16:31 · 587 阅读 · 0 评论 -
【Kotlin】匿名类和伴生类
本文主要介绍匿名类、单例类、伴生类原创 2024-04-01 00:40:19 · 440 阅读 · 0 评论 -
【Kotlin】Sequence简介
序列(Sequence)是 Kotlin 中为方便操作集合及其元素而定制的接口,是一个延迟获取数据的集合,只有需要元素时才会生产元素。在处理大量数据时,序列可以显著地提升性能。Sequence 类似 Java 中的 Stream,详见 →。Sequence 有中间操作和终端操作,如下。中间操作终端操作。原创 2024-03-30 12:15:47 · 732 阅读 · 0 评论 -
【Kotlin】List、Set、Map简介
List、Set、Map、Pair原创 2024-03-28 00:54:48 · 1271 阅读 · 0 评论 -
【Kotlin】Array简介
创建数组、初始化数组、访问数组元素、遍历元素、拼接数组、内容比较、包含判断、翻转元素、打乱元素顺序、元素排序、可变长参数函数、统计函数、二维数组原创 2024-03-24 16:27:54 · 475 阅读 · 0 评论 -
【Kotlin】扩展属性、扩展函数
Kotlin 提供了扩展类或接口的操作,而无需通过类继承或使用装饰器等设计模式,来为某个类添加一些额外的属性或函数,我们只需要通过一个被称为扩展的特殊声明来完成。我们可以将那些第三方类不具备的功能强行进行扩展,方便我们的操作。类的扩展是静态的,实际上并不会修改它们原本的类,也不会将新成员插入到类中,仅仅是将我们定义的功能变得可调用,使用起来就像真的有一样。Kotlin 提供了一些泛型扩展函数(在 Standard.kt 中),如:apply、also、run、let、takeIf、takeUnless等原创 2024-03-20 21:48:12 · 976 阅读 · 0 评论 -
【Kotlin】运算符函数、解构函数、中缀函数
说明:如果类中同时定义了 plus 和 plusAssign 运算,a += b 就会产生歧义,因为 a += b 等价于 a = a + b,编译器不知道是执行 plus 函数还是 plusAssign 函数,就会编译报错,其他运算符同理。中缀函数是使用 infix 关键字标记的函数,在使用时,可以省略点和括号,如:位运算 shl 就是一个中缀函数。函数必须满足以下条件。中缀函数调用的优先级低于算术运算符、类型转换和 rangeTo 运算符,高于布尔运算符(&&、||、is)。原创 2024-03-13 23:16:07 · 1034 阅读 · 1 评论 -
【Kotlin】类和对象
Kotlin 是面向对象编程语言,与 Java 语言类似,都有类、对象、属性、构造函数、成员函数,都有封装、继承、多态三大特性,不同点如下。Java 有静态(static)代码块,Kotlin 没有;Java 有静态(static)函数,Kotlin 没有;Java 构造函数名与类名相同,Kotlin 构造函数名为 constructor;Kotlin 有初始化代码块(init),Java 没有;Kotlin 有主构造函数,Java 没有。原创 2024-03-08 23:52:46 · 1178 阅读 · 0 评论 -
【Kotlin】Lambda表达式
Lambda 表达式中,不能直接使用 return 语句返回,需要结合标签一起使用,否则会编译报错(内联函数除外,详见 →。尾随 Lambda 表达式中,可以使用外层函数的名字作为 return 的标签名,也可以在 {} 前面自定义标签名。说明:当外层函数的最后一个参数不是函数类型,前面的某个参数是函数类型时,必须将 {} 写到 () 里面。说明:当外层函数的最后一个参数是函数类型时,可以将 {} 提到 () 外面,该语法称为“当只有一个参数时,可以使用 it 简化 Lambda 表达式,如下。原创 2024-03-03 23:15:02 · 504 阅读 · 0 评论 -
【Kotlin】函数
Kotlin 的内联(inline)函数可以使用 reified 关键字具化类型参数,允许在函数体内部检测泛型类型,因为这些类型信息会被编译器内嵌在调用点。但是,这只适用于内联函数,因为内联函数中的类型信息在编译时是可知的,并且实际类型会被编译到使用它们的地方。如下,Int 是 Number 的子类,Number 引用可以指向 Int 对象,但是 Data 引用不能指向 Data 对象,Data 引用也不能指向 Data 对象,该现象称为抗变。原创 2024-03-01 01:03:46 · 1378 阅读 · 0 评论 -
【Kotlin】流程控制
Kotlin 中选择结构主要包含 if -else、when 语句,并且可以返回结果。Kotlin 中循环结构主要包含 for、while、do-while 循环结构。另外,continue 语句可以控制跳过某次循环,break 语句可以控制跳出循环体。原创 2024-02-19 23:36:42 · 1276 阅读 · 0 评论 -
【Kotlin】变量和基本数据类型
本文介绍了Kotlin中整型(Int、Byte、Short、Long等)、浮点型(Float、Double)、字符型(Char)、字符串型(String)等基本数据类型变量及其运算符、函数等。原创 2024-02-08 00:17:59 · 1872 阅读 · 0 评论 -
【Kotlin】Kotlin环境搭建
Kotlin 是一种现代但已经成熟的编程语言,由 JetBrains 公司于 2011 年设计和开发,并在 2012 年开源,在 2016 年发布 v1.0 版本。在 2017 年,Google 宣布 Kotlin 正式成为 Android 开发语言,这进一步推动了 Kotlin 的普及和发展。Kotlin 旨在解决 Java 语言在编码效率和代码质量方面存在的问题,并且与 Java 语言完全兼容。原创 2024-02-05 00:58:57 · 1881 阅读 · 1 评论