首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Kotlin 避坑指南
业志陈
创建于2021-09-02
订阅专栏
学不动也要努力学呀 ~
等 85 人订阅
共13篇文章
创建于2021-09-02
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
两万六千字带你 Kotlin 入门
开头先说一下,我不是标题党,本教程真的有两万六千字(严格点说应该是两万六千五百八十四),以前我也曾写过 Kotlin 的入门教程,但由于隔得比较久了,所以就对原有教程进行了修正,并且补充了 Kotli
探究 Kotlin 的隐藏性能开销与避坑指南
Kotlin 在设计理念上有很多和 Java 不同的地方,开发者能够直观感受到的是语法层面上的差异性,背后也包含有一系列隐藏的性能开销以及一些隐藏得很深的“坑”
Gson 和 Kotlin Data Class 的避坑指南
在蛮久前有同事问过我关于一个 Gson 和 Kotlin dataClass 的问题,当时答不上来也没去细究,但一直都放在心底,今天就认真探究下原因,也输出总结了一下,希望能帮助你避开这个坑😂😂
一文快速入门 Kotlin 协程
在今年的三月份,我因为需要为项目搭建一个新的网络请求框架开始接触 Kotlin 协程。那时我司项目中同时存在着两种网络请求方式,采用的技术栈各不相同,Java、Kotlin、RxJava、LiveDa
【译】kotlin 协程官方文档(9)-选择表达式(实验阶段)
我们现在有两个字符串生产者:fizz 和 buzz 。其中 fizz 每 300 毫秒生成一个字符串“Fizz”: 使用挂起函数 receive,我们可以从两个通道接收其中一个的数据。但是 select 表达式允许我们使用其 onReceive 子句同时从两者接收: 当通道关闭…
【译】kotlin 协程官方文档(8)-共享可变状态和并发性
可以使用多线程调度器(如 Dispatchers.Default)并发执行协程,它呈现了所有常见的并发问题。主要问题是对共享可变状态的同步访问。在协程作用域中解决这个问题的一些方法类似于多线程世界中的方法,但有一些其它方法是独有的 让我们启动一百个协程,都做同样的操作一千次。我…
【译】kotlin 协程官方文档(7)-异常处理
本节讨论协程关于异常的处理和取消异常。我们已经知道,取消协程会使得在挂起点抛出 CancellationException,而协程机制会忽略这个异常。但是,如果在取消期间抛出异常,或者协程的多个子协程抛出异常,此时会发生什么情况呢? 协程构建器有两种类型:自动传播异常(laun…
【译】kotlin 协程官方文档(6)-通道
与队列不同,通道可以关闭,以此来表明元素已发送完成。在接收方,使用常规的 for 循环从通道接收元素是比较方便的 从概念上讲,close 类似于向通道发送一个特殊的 cloase 标记。一旦接收到这个 close 标记,迭代就会停止,因此可以保证接收到 close 之前发送的所…
【译】kotlin 协程官方文档(5)-异步流
可以使用集合在 kotlin 中表示多个值。例如,有一个函数 foo(),它返回包含三个数字的 List,然后使用 forEach 打印它们 上一节的代码的计算操作会阻塞运行代码的主线程。当这些值由异步代码计算时,我们可以用 suspend 修饰符标记函数 foo,以便它可以在…
【译】kotlin 协程官方文档(4)-协程上下文和调度器
协程上下文包含多种子元素。主要的元素是协程作业(Job,我们之前见过),以及它的调度器(Dispatche,本节将介绍) 协程上下文(coroutine context)包含一个协程调度器(参阅 CoroutineDispatcher),协程调度器 用于确定执行协程的目标载体,…
【译】kotlin 协程官方文档(3)-组合挂起函数
假设我们有两个定义于其它位置的挂起函数,它们用于执行一些有用操作,比如某种远程服务调用或者是计算操作。我们假设这两个函数是有实际意义的,但实际上它们只是为了模拟情况而延迟了一秒钟 我们使用默认顺序来调用这两个函数,因为协程中的代码和常规代码一样,在默认情况下是顺序的执行的。下面…
【译】kotlin 协程官方文档(2)-取消和超时
在一个长时间运行的应用程序中,我们可能需要对协程进行细粒度控制。例如,用户可能关闭了启动了协程的页面,现在不再需要其运行结果,此时就应该主动取消协程。launch 函数的返回值 Job 对象就可用于取消正在运行的协程 只要 main 函数调用了 job.cancel,我们就看不…
【译】kotlin 协程官方文档(1)-协程基础
本质上,协程可以称为轻量级线程。协程在 CoroutineScope (协程作用域)的上下文中通过 launch、async 等协程构造器(coroutine builder)来启动。在上面的例子中,