2022

Kotlin-协程基础

Kotlin 作为一种语言,在其标准库中仅提供极少数的 API,以便其他各种库能够利用协程的语言。与许多其
他具有类似功能的语言不同,async 和 await 不是 Kotlin 中的关键字,甚至不是其标准库的一部分。此
外,与future和promise相比,Kotlin 的挂起函数概念为异步操作提供了更安全且不易出错的抽象
——————这是官方文档给Kotlin协程的介绍

实现生成sequence序列的方法

这段时间在学习kotlin的协程相关的内容,其中看到一个函数sequence(@BuilderInference block: suspend SequenceScope<T>.() -> Unit),它可以一个接一个地或按任意大小的块生成序列(Sequences) 。这个函数
接受一个包含调用 yield()yieldAll() 函数的 lambda 表达式。它们将一个元素返回给序列消费者并暂停
sequence()的执行,直到消费者请求下一个元素。 yield() 将单个元素作为参数;yieldAll()可以 接受一个 Iterable对象、一个Iterator或另一个Sequence

Kotlin中的序列(Sequences)

除集合之外,kotlin的标准库中还提供了另一种容器——序列(Sequence<T>)。序列同样提供了Iterable
同的函数,但实现的是另一种方法进行多步骤的集合处理。如果你熟悉Java,其实就是Java8版本中Stream的翻版。

kotlin-内联类

Kotlin 1.5 宣布了一个重磅特性 value class,这是一个非常实用的特性,提高代码的可读性同时,还可以提高性能,因为编译器会对它进行更深层次的优化,减少对象的创建。

okhttp拦截器之CacheInterceptor

CacheInterceptor拦截器官方给个注释:Serves requests from the cache and writes responses to the cache.用于从缓存中获取相应和把相应写入缓存中,okhttp缓存默认是不开启,需要通过如下方式设置Cache

okhttp拦截器之BridgeInterceptor

BridgeInterceptor的内容很简单,先看它的介绍:从应用程序代码到网络代码的桥梁。首先,它根据用户请求构建网络请求。然后它继续调用网络。最后,它从网络响应构建用户响应。

okhttp拦截器之RetryAndFollowUpInterceptor

okhttp源码版本: 4.9.0

承接上篇okhttp框架解析

第一个内置拦截器,RetryAndFollowUpInterceptor如它的名字所诉重试&重定向。它会对特定的网络错误类型和需要重定向的请求进行请求网络重试,那么要想做到重试估计要开启一个循环不停的处理,那它具体是如何工作的呢?