首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin:05-控制 if、when、for、while

一、if 表达式 在 Kotlin 中,if 既可以作为普通的判断语句使用,也可以作为表达式使用。 当 if 作为表达式使用时,本身就会有返回值,其效果等同于 java 中的三元运算。...Int) { var max: Int if (a > b) { max = a } else { max = b } } 但是,我们已经知道了,在 kotlin...二、When 表达式 (一)、主要特点: kotlin 中 ,When 的主要特点如下: When 类似于 java 中的 switch ,但是功能比 switch 更为强大。...(三)、补充:forEach kotlin中遍历的时候,我们也可以使用 forEach ( ){ }, 需要注意的是: 使用 forEach 函数时, 被遍历到的数据 使用固定的字符 it 表示。...四、While 循环 Kotlin 中的 while 和 do...while 与java中的并没有区别,使用的方式是一致的。

1.4K10

有小伙伴说看不懂 LiveData、Flow、Channel,跟我走

Kotlin Flow 是基于 Kotlin 协程基础能力搭建的一套数据框架,从功能复杂性上看是介于 LiveData 和 RxJava 之间的解决方案。...并且在 Kotlin 协程的加持下,Kotlin Flow 目前是 Google 主推的数据框架。 1. 为什么要使用 Flow?...RxJava 是第三方组织 ReactiveX 开发的组件,Rx 是一个包括 Java、Go 等语言在内的多语言数据框架。功能强大是它的优势,支持大量丰富的操作符,也支持线程切换和背压。...: Flow 的子类 SharedFlow 支持配置重放 replay,能够自定义对新订阅者重放数据的配置; Flow 相对 RxJava 的学习门槛更低: Flow 的功能更精简,学习性价比相对更高。...冷数据与热数据 Kotlin Flow 包含三个实体:数据生产方 - (可选的)中介者 - 数据使用方。数据生产方负责向数据发射(emit)数据,而数据使用方从数据中消费数据。

2K10

Kotlin 协程】Flow 异步 ③ ( 冷流 | 被收集时运行 | 的连续性 )

文章目录 一、冷流 ( 被收集时运行 ) 二、的连续性 一、冷流 ( 被收集时运行 ) ---- Flow 异步 的 构建器函数 flow 函数 中的 代码 , 在 调用 Flow#collect...函数 时 , 也就是在 Flow 异步 收集元素时 , 才会 执行 flow 构建器 中的代码 ; 这种机制的异步 称为 冷流 ; 代码示例 : 在 flow 构建器的开始位置 , 发射元素 ,...savedInstanceState) setContentView(R.layout.activity_main) // 携程中调用挂起函数返回一个 Flow 异步...runBlocking { println("Flow 异步 开始收集元素") // 调用 Flow#collect 函数, 可以获取在异步中产生的元素...---- Flow 的 每次调用 Flow#collect 收集元素的操作 , 都是 按照 固定顺序 执行的 , 使用 特殊操作符 可以改变该顺序 ; Flow 异步 中的元素 , 按照顺序进行

48620

实战 | 使用 Kotlin Flow 构建数据 管道

在本文中我们将使用 Kotlin Flow 来实现。Flow 并不是唯一的数据构建器,不过得益于它是协程的一部分并且得到了很好的支持。...,这一操作可以更好地抽象当前层级,每个运算符都应根据其功能创建一个新的 Flow 来发送数据。...而 catch 运算符则可以捕获上游数据中发生的异常,上游数据是指在生产者代码块和当前运算符之间调用的运算符产生的数据,而在当前运算符之后生成的数据则被称为下游数据。...我们有多种具有生命周期感知能力的方案,来实现当信息不在屏幕上展示就不从数据中收集信息的功能,比如 androidx.lifecycle:lifecycle-runtime-ktx 包中的 Lifecycle.repeatOnLifecycle...val first = repository.messages.take(5).toList() } 回顾 感谢阅读本文,希望您通过本文内容已经了解到为什么响应式架构值得投资,以及如何使用 Kotlin

1.4K10

Android面试题之Kotlin异步、冷流Flow

,和懒加载有点像 的连续性 的每次单独收集都是按照顺序执行的,除非使用特殊的操作符 从上游到下游每个过渡操作符都会处理每个发射出的值,然后再交给末端操作符 //会输出string 2;string...flowOf构建器定义了一个发射固定值集的 使用.asFlow扩展函数可以将各种集合 与序列转换为 流上下文 的收集总是在调用协程的上下文中发生,这个属性称为上下文保存 flow{...}构建器中的代码必须遵循上下文保存属性...的取消 采用与协程同样的协作取消。...asFlow() .map { it * it } .reduce{a,b -> a+b} //输出55 println(sum) } 组合操作符 就像kotlin...标准库中的sequence.zip扩展函数一样,拥有一个zip操作符用于组合两个中的相关值 2个是异步的 @Test fun `test flow zip`() = runBlocking<Unit

6110

Kotlin上的反应式-SharedFlow和StateFlow

点击上方蓝字关注我,知识会给你力量 在本教程中,你将学习Kotlin中的反应式,并使用两种类型的——SharedFlow和StateFlow,构建一个应用程序。...事件已经成为Android的标准配置。多年来,RxJava一直是反应式的标准。现在,Kotlin提供了自己的反应式实现,称为Flow。...与RxJava一样,Kotlin Flow可以创建数据并对其做出反应。也和RxJava一样,事件可以来自冷或热发布者。...换句话说,尽管这个框架是有效的,但它很容易被它的所有功能所迷惑。这样做会导致过于复杂的解决方案和难以理解的代码。Kotlin Flow为反应式提供了更直接和具体的实现。...replay:向新订阅者重放的数值的数量。它不能是负数,默认为零。 extraBufferCapacity:缓冲的值的数量。不能为负数,默认为零。

2.1K60

Kotlin 推出新功能:无需同时了解 Kotlin 和 JavaScript

整理 | 褚杏娟、核子可乐 近日,JetBrains 发布了 Kotlin 1.8.20 beta 版本,其中包括一项名为“Kotlin/Wasm”的实验性功能,明确将 WebAssembly 设为编译目标...据介绍,新版本依赖于原生 Wasm 垃圾收集功能 WasmGC,后者同样处于早期开发阶段。...JetBrains 总结了 Kotlin/Wasm 的优势: 与 wasm32 Kotlin/Native 目标相比,Kotlin/Wasm 的编译速度更快,因为后者不必使用 LLVM。...因此官方火力全开,组建了一个专门团队来开发 Kotlin/Wasm 工作,并且与 WebAssembly 垃圾回收提案作者紧密合作,要实现 Kotlin 语言的基本功能、函数库和基本 Gradle 的支持...,还要添加实验性 JavaScript 互通操作功能

1.5K20

Kotlin 1.4 版本正式发布:新功能一覽

此次的版本更新花费了很多精力来提高 Kotlin 及其工具的性能和质量,例如高亮显示的速度提高了 1.5-4 倍,支持多种新的语言功能,例如 Kotlin 接口 SAM 转换。...当我们启动 Kotlin / Native 时,它是基于围绕 Kotlin 代码内部表示(internal representation)构建的新基础架构的,该功能具有与虚拟机中的字节码类似的功能。...Kotlin 1.4 新功能 Kotlin 1.4 将提供一些新功能Kotlin1.4会在2020年发布。...不积跬步,无以至千里;不积小,无以成江河。 Kotlin 简介 Kotlin是一门非研究性的语言,它是一门非常务实的工业级编程语言,它的使命就是帮助程序员们解决实际工程实践中的问题。...我们可以直接访问平台API以及现有的代码库,同时仍然享受和使用 Kotlin 的所有强大的现代语言功能

1.2K10

RV1126多路码功能

,比如说,音视频不同步的问题: 一、打算新添加RV1126多路码功能: 1、什么是RV1126多路码功能?...RV1126多路码指的是一个摄像头+一个麦克风同时推流到到多个地址,目前的话多路码最多可以同时推到30个地址(目前演示的是推到三个)。...在大型直播的时候,通过摄像机捕捉到现场的画面,并把数据实时传输到各大流媒体,如腾讯视频,爱奇艺、芒果TV等,都是多路码的最大功能之一。...3、多路码涉及到的技术点: 其实多路码和我们星球目前在讲解的单路码有很多相似之处,但最大的不同是在采集到音视频编码数据后通过流媒体地址的映射关系传输到不同的队列进行存储。...并且通过url的id获取每一个Url的队列进行推

1.1K20

Kotlin 协程】Flow 异步 ⑥ ( 调用 Flow#launchIn 函数指定收集协程 | 通过取消收集所在的协程取消 )

文章目录 一、调用 Flow#launchIn 函数指定收集协程 1、指定收集协程 2、Flow#launchIn 函数原型 3、代码示例 二、通过取消收集所在的协程取消 一、调用 Flow...#launchIn 函数指定收集协程 ---- 1、指定收集协程 响应式编程 , 是 基于事件驱动 的 , 在 Flow 中会产生源源不断的事件 , 就是 发射元素操作 ; 拿到 Flow 后...【Kotlin 协程】Flow 异步 ⑤ 中 , 调用 Flow#flowOn 函数 , 可以 指定 Flow 发射元素 的 协程 ; Flow#launchIn 函数返回值是 Job 对象 ,...[启动][启动]给定的[收集][收集]。...---- Flow 的 收集元素 操作 , 是在协程中执行 , 将 协程 取消 , 即可将 Flow 收集操作 取消 , 也就是 将 Flow 取消 ; 代码示例 : 使用 withTimeoutOrNull

71820

二十五、Hystrix累计统计、分发、最大并发、配置功能流(附代码示例)

前言 上篇文章 介绍了Hystrix的“主流”:在滑动窗口内统计、健康。...既然Hystrix的指标数据收集是基于事件驱动,那么自然可以多一些监听,那么本文将做个收尾,对Hystrix内置的累计统计、分发、最大并发…等等分别做介绍,让小伙伴们能对这种模式有个更深的理解,...---- 分布 RollingDistributionStream 在指定时间窗口内分布。说到分布,所以和统计、画图有关。。。...---- 功能流 HystrixUtilizationStream Utilization:使用、利用(使用率、利用率)。这个类对当前Hystrix资源的利用情况进行采样,并将其公开为。...currentCorePoolSize":10, "currentPoolSize":3, "currentQueueSize":0 } } } 这是功能流的数据

1.8K10
领券