kotlin
临江虾
青春作赋,皓首穷经,赋技术以温度
展开
-
Kotlin中set方法的“[]=”写法
Java代码转kotlin代码,出现了一段“[firstPara, secondPara, thirdPara ] = fourthPara" 的写法没看懂。经过验证其确实是可以正常运行的一种写法。由于之前没见过这种写法,也没从官方教程中找到出处,在此记录。由于该写法过于奇怪,记录不代表本人推荐这种写法。转换之后的kotlin代码简化,记为写法1val rect = RectF()rect[left, top, right] = bottom转换前后运行效果一致,之后打算转换之后进一步优化.原创 2021-02-23 16:25:19 · 485 阅读 · 0 评论 -
kotlin:协程究竟运行在那个线程?
对于同一个协程作用域,协程会在那个线程运行呢?试验代码如下:import kotlinx.coroutines.*import java.io.BufferedInputStreamimport java.io.Fileimport java.io.FileInputStreamimport kotlin.coroutines.resumeimport kotlin.system.measureTimeMillis@ExperimentalCoroutinesApifun main()原创 2020-09-18 15:52:16 · 910 阅读 · 0 评论 -
Kotlin协程能否取消IO操作的验证
我们知道kotlin协程的示例代码中多是取消delay,这和java中打断sleep相似。那么对于执行文件读写操作的代码,取消是否能结束线程呢?本篇主要就这一问题进行验证0. 先说结论结论是无法结束线程真正达到取消任务的目的1. 验证代码import kotlinx.coroutines.*import java.io.BufferedInputStreamimport java.io.Fileimport java.io.FileInputStreamimport kotlin.sys.原创 2020-09-17 17:36:24 · 250 阅读 · 1 评论 -
withContext(NonCancellable): 让挂起函数不被取消
withContext(NonCancellable)可以让挂起函数不被取消。从效果上来看,有点像java中的interrupt打断sleep来中断线程使用 withContext(NonCancellable),代码如下import kotlinx.coroutines.*fun main() = runBlocking{ // # 9 /** * 使用withContext(NonCancellable)后,即使取消,它里面的内容都会执行完,不使用的话,.原创 2020-09-16 15:34:47 · 986 阅读 · 0 评论 -
kotlin中join方法效果验证
kotlin 中join()方法可以在一个作业中中等待另一个作业结束后再进行其他操作,如下代码对以日志的形式直观化这个效果import kotlinx.coroutines.*fun main() = runBlocking{ val job = launch { try { repeat(1000){ println("job: I'm sleeping $it 。。。") delay.原创 2020-09-16 10:35:55 · 2491 阅读 · 0 评论