Kotlin 之 let、with、run、apply、also 函数的使用
一、内联拓展函数 let let 扩展函数的实际上是一个作用域函数,当你需要去定义一个变量在一个特定的作用域范围内,let函数的是一个不错的选择;let函数另一个作用就是可以避免写一些判断null的操作。 1.1 let 函数的使用的一般结构 object.let { it.todo() //在函数体内使用it替代object对象去访问其公有的属性和方法 ... } /...
一、内联拓展函数 let let 扩展函数的实际上是一个作用域函数,当你需要去定义一个变量在一个特定的作用域范围内,let函数的是一个不错的选择;let函数另一个作用就是可以避免写一些判断null的操作。 1.1 let 函数的使用的一般结构 object.let { it.todo() //在函数体内使用it替代object对象去访问其公有的属性和方法 ... } /...
Android生成文件失败:java.lang.IllegalStateException:Failed to build unique file: /storage/emulated/0/… 1.问题来源 App 调用相机拍照,中间有一些处理过程,然后将这张照片插入系统图片数据库中。 MediaStore.Images.Media.insertImage(getContentResol...
使用 viewpager2 时遇到如下错误, 使用 recyclerview 也有可能会遇到 : 2022-02-10 14:15:43.510 12151-12151/com.sharpcj.demo1 D/sharpcj_tag: onBindViewHolder ... 2022-02-10 14:15:43.548 12151-12151/com.sharpcj.demo1 D/A...
[toc] 一、Android MVVM 结构 Android 官方提供的架构图 二、添加依赖 如需在 Android 项目中使用协程,请将以下依赖项添加到应用的 build.gradle 文件中: dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9") ...
[toc] 一、 Flow 与 Channel 的相互转换 1.1 Flow 转换为 Channel 1.1.1 ChannelFlow @InternalCoroutinesApi public abstract class ChannelFlow<T>( // upstream context @JvmField public val context: C...
[toc] 一、Flow 的基本使用 Kotlin 协程中使用挂起函数可以实现非阻塞地执行任务并将结果返回回来,但是只能返回单个计算结果。但是如果希望有多个计算结果返回回来,则可以使用 Flow。 1.1 Sequence 与 Flow 介绍 Flow 之前,先看下序列生成器: val intSequence = sequence<Int> { Thread...
[toc] 一、 Channel 基本使用 1.1 Channel 的概念 Channel 翻译过来为通道或者管道,实际上就是个队列, 是一个面向多协程之间数据传输的 BlockQueue,用于协程间通信。Channel 允许我们在不同的协程间传递数据。形象点说就是不同的协程可以往同一个管道里面写入数据或者读取数据。它是一个和 BlockingQueue 非常相似的概念。区别在于:Bloc...
[toc] 一、协程的一些前置知识 1.1 进程和线程 1.1.1基本定义 进程 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。 进程是资源分配的最小单位,在单核CPU中,同一时刻只有一个程序在内存中被CPU调用运行。 线程 基本的CPU执行单元,程序执行过程中的最小单元,由 ...
一、函数 代码块函数体: fun sum(x: Int, y: Int): Int { return x + y } 表达式函数体: fun sum(x: Int, y: Int) = x + y 使用表达式函数体,一般情况下可以不声明返回值类型。在一些诸如递归等复杂情况下,即使是使用表达式函数体,也必须显示声明返回值类型。 总结: 函数参数必须显...
重装系统前请备份 ~/.ssh 下的公钥私钥文件,重装系统后,请使用以下方法复用好之前的 key 将备份好的 key copy 至 ~/.ssh 下 将私钥 id_rsa 的文件属性改为600:sudo chmod 600 id_rsa 执行 ssh-add id_rsa 执行 ssh-add id_rsa 过程中如果报 Could not open a connection to ...