Kotlin—String的常用方法
Kotlin的String类中有非常多的方法,下面列举一些经常用到的方法,首先定义一个字符串变量,后面都以这个变量来验证String相关的方法。 //定义字符串 val str = "12345678…
Kotlin-协程<专>—协程原理
前言 协程(Coroutines),是 Kotlin 「最神奇」的特性,没有之一。 1. 线程 & 协程 很多主流编程语言都支持协程,比如:C#,Python,Lua,就连C++20…
Kotlin-协程(专)—Flow 篇(四十一)
Flow 就是 Kotlin 协程与响应式编程模型结合的产物,你会发现它与 RxJava 非常像,二者之间也有相互转换的 API,使用起来非常方便。 随着 RxJava 的流行,响应式编程模…
Kotlin-协程(专)—Select 篇(四十)
Select 并不是什么新鲜概念,我们在 IO 多路复用的时候就见过它,在 Java NIO 里面也见过它。接下来给各位介绍的是 Kotlin 协程的 Select。 复用多个 await 我们前面已…
Kotlin-协程(专)—Channel 篇(三十九)
Channel 实际上就是协程在生产消费者模型上的应用,把过去你用 BlockingQueue 实现的功能替换成 Channel,也许会有新的发现~ 1. Ch…
Kotlin-协程(专)—序列生成器(三十八)
Kotlin 1.1 协程还在吃奶的时候,Sequence 就已经正式推出了,然而,Sequence 生成器的实现居然有协程的功劳。 1. Sequence 懒序列 在 Kotlin 当中,Seque…
Kotlin-协程(专)—协程挂起(三十七)
协程的挂起最初是一个很神秘的东西,因为我们总是用线程的概念去思考,所以我们只能想到阻塞。不阻塞的挂起到底是怎么回事呢? 1. 先看看 delay 我们刚刚学线程的时候,最常见的模拟各种延时用的就是&n…
Kotlin-协程(专)—协程取消(三十六)
协程的任务的取消需要靠协程内部调用的协作支持,这就类似于我们线程中断以及对中断状态的响应一样。 1. 线程的中断 我们先从大家熟悉的话题讲起。线程有一个被废弃的 stop 方法,这…
Kotlin-协程(专)—异常处理(三十五)
1. 引子 在前面当中提到了这样一个例子: typealias Callback = (User) -> Unit fun getUser(callback: Callback){ ... } 我们通…
Kotlin-协程(专)—协程调度(三十四)
1、协程上下文 调度器本质上就是一个协程上下文的实现,我们先来介绍下上下文。 前面我们提到 launch 函数有三个参数,第一个参数叫 上下文,它的接口类型是 …
Kotlin-协程(专)—协程启动(三十三)
1.刚学 Thread 的时候 现在接触 Kotlin 的开发者绝大多数都有 Java 基础,我们刚开始学习 Thread 的时候,一定都是这样干的: val thread = o…
Kotlin-协程—协程进阶(三十二)
协程框架 如果是应用的话,主要掌握框架级别的使用即可,语言级别的支持api来源于标准库,写起来比较麻烦也非常难理解。 作用域 Scope是什么? 当launch, async或runBloc…
Kotlin-协程—协程初步(三十一)
协程 在说协程之前可以先讲讲进程和线程: 有一定基础的小伙伴们肯定都知道进程和线程。 进程是什么呢? 直白地讲,进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。 进…