首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏我的计算机成长

    操作符详解(2

    9.条件操作符 由问号和冒号组成,有三个表达式,有三个操作符,所以条件操作符是唯一的一个三目操作符,exp1为真,exp2则计算,exp3不算,整个表达式的结果就是exp2的结果。 exp1为假,exp2则不计算,exp3计算,整个表达式的结果就是exp3的结果. exp1 ? exp2 : exp3 这两个代码的效果是一样的,这就是条件操作符的用法。  2. ( ) 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。 float f = 3.14; int num = f;//隐式转换,会有精度丢失 12.3 操作符的属性 复杂表达式的求值有三个影响的因素。  1. 操作符的优先级  2. : 条件操作符 rexp ?

    38710编辑于 2024-01-23
  • 来自专栏C语言讲解

    操作符详解(2

    条件操作符 exp1 ? [2]);//[] 下标引用操作符, arr 和 2 是 [] 的两个操作数 return 0; } ( ) 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数 author, b1.price); //printf("%s %s %.1f\n", b2.name, b2.author, b2.price); //结构体变量.成员名 return 0; float f = 3.14; int num = f;//隐式转换,会有精度丢失 11.3 操作符的属性 复杂表达式的求值有三个影响的因素: 操作符的优先级 操作符的结合性 是否控制求值顺序 上述图片中 //相邻操作符优先级高的先算,低的后算 //相邻操作符的优先级相同的情况下,结合性起作用 int main() { int a = 2 + 3 + 5; return 0; } 但是,就算我们知道了以上三点

    32610编辑于 2024-01-22
  • 来自专栏li_wait

    C语言操作符2

    在这篇文章中,主要讲解关系操作符、条件操作符、逻辑操作符,及其短路。 一. 如: 20 > 12//返回1 12 > 20//返回0 printf("%d", 2 == 2);//打印1 注意1:相等运算符==与赋值运算符是两个不一样的运算符,不能混淆。 条件操作符(也叫三目操作符) 与单目操作符和双面操作符类似,(单目操作符和双目操作符:https://blog.csdn.net/wait___wait/article/details/ exp2 :exp3 条件操作符的运算逻辑是:如果exp1为真,exp2计算,计算的结果是整个表达式的结果;如果exp1为假,exp3计算,计算的结果是整个表达式的结果。 是否等于1或者2,整个表达式的结果也是1(是冬季)。

    52610编辑于 2024-10-23
  • 来自专栏C++

    C语言(操作符2

    我们首先定义了一个学生类型(struct student),在主函数中,我们用定义的学生类型分别创建了一个结构体变量 s1 和 s2 ,还用 int 类型创建了一个整型变量 a,struct student 当然,结构体也是可以嵌套的: 6.3结构体成员访问操作符 在给结构体变量初始化后,也可以把它拿出来,这就用到了结构体成员访问操作符 “ . ”。 用法为:结构体变量.结构体成员名 还有一个结构体成员访问操作符 “—>”,这个是依赖指针的,后面再探讨。 (1)有符号整数提升是按照变量的数据类型的符号位来提升的; (2)无符号整数提升,高位补0。 如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数转换为另一个操作数的类型,否则无法进行。

    22110编辑于 2024-10-16
  • 来自专栏Android相关

    RxJava2--操作符Operator

    介绍 在RxJava的事件流转过程中,可以改变事件中的事件以及数据,使用的就是RxJava提供的操作符。 从RxJava2-Android-Samples的ReadMe.md中可以看到有如下操作符 操作符 操作符 操作符 操作符 Map Zip Reduce Filter FlatMap Take Skip Buffer Concat Replay Merge 而在Operators的文档中图文并茂展示出各个操作符的作用接下来会介绍这些操作符的作用与使用方法 Map Map的作用: 将发射的事件进行Map $data") } Zip Zip操作符的作用: 将多个发射器的事件按顺序合并成单个事件流发射,如果多个发射器之间的事件数不相等,则合并后的事件数以少的为准。 ? 1 t1:1....t2:2 t1:3....t2:3 t1:6....t2:4 t1:10....t2:5 subscribe 15 Filter Filter名为过滤,与其名相似,Filter的作用就是按条件过滤事件

    1.1K10发布于 2018-12-28
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Debounce”

    emitter.onNext(1); // skip Thread.sleep(400); emitter.onNext(2) Thread.sleep(510); emitter.onComplete(); } }); } 运行结果 “2” ,“4”,“5” 分析 关键部分看被观察者这块; 第一个事件1发送出来以后过了400毫秒后发送出了第二个事件,此时不事件1不满足时间的条件被遗弃,然后重新计时; 2发出后休眠了505毫秒,超过了500 毫秒,所以2被发射了出来,被观察者收到; 3发出来后又过了100毫秒4发出来,所以3被遗弃,从4重新计时,后又过了605毫秒下一个事件才发出,所以4被发射了出来; 同理,5之后的0.5秒内也没有再发出别的事件

    1.4K10发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Merge”

    作用 combine Observable 合并被观察者 示例用法 final String[] aStrings = {"A1", "A2", "A3", "A4"}; final String[] bStrings = {"B1", "B2", "B3"}; final Observable<String> aObservable = Observable.fromArray bObservable = Observable.fromArray(bStrings); Observable.merge(aObservable, bObservable)//使用merge操作符将两个被观察者合并 .subscribe(getObserver());//这里的观察者依然不重要 运行结果 eg:"A1", "B1", "A2", "A3", "A4", "B2", 其中: A打头的都属于第一个被观察者 B打头的都属于第二个被观察者 然后用操作符merge将两个被观察者合并 最后,我们从观察者中拿到的item有可能为:"A1", "B1", "A2", "A3

    53640发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Reduce”

    字面意思减少,也可以叫“聚合”或者“压缩” 实际上的效果就是可以把一个被观察者中的多个事件进行压缩,最后发射压缩后的事件 示例用法 这里举个例子,做一下累加计算 Observable.just(1, 2, Integer>() { @Override public Integer apply(Integer t1, Integer t2) { return t1 + t2;//累加操作,如果是-就是累减操作。。 reduce的过程: t1 = 1;t2 = 2 计算:t1 + t2 = 3; t1 = 3;t2 = 3; 计算: t1 + t2 = 6; t1 = 6;t2 = 4; 计算 :t1 + t2 = 10; 结束 最后,将聚合结果发射出来,观察者接受为10 总结 这个系列只有干货,如果大家有什么好的建议的话欢迎在下面评论。

    1K20发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Take”

    前言 最近我也在学习RxJava2,在网上找了好多文章来读,发现大多数都是说RxJava2和RxJava之间到底有什么区别的,每一个例子都要考虑RxJava里是怎么写的,让人看着都头大,知道后来我在简书上发现了一个非常棒的 而我准备要写的这个系列则是在入门之后的,对于各种操作符的用法的讲解,在此之前我也翻译了一个歪果仁的RxJava2的示例代码,文章内的截图和代码我也准备用这个项目里的内容来,如果想直接看代码的童鞋可以直接传送 :https://github.com/nelson1110/RxJava2-Android-Samples。 文章内容我也准备从简单的操作符写起,最后把比较抽象不容易搞清楚的操作符单独拿出来整理一下。 运行结果 1,2,3 分析 我们创建了一个会发送1~5 五个item的被观察者 然后用操作符take,里面的参数为3,即只发送前三个item 最后,我们从观察者中拿到的item为1,2,3 总结 前几个操作符肯定比较容易理解

    79430发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Delay”

    作用 顾名思义,delay操作符的作用就是延时发射Observable里面的事件 示例用法 Observable.just("Amit") //延时两秒,第一个参数是数值 ,第二个参数是事件单位 .delay(2, TimeUnit.SECONDS) // Run on a background thread .subscribe(getObserver());//这里的观察者依然不重要 运行结果 两秒钟之后,观察者收到事件 -> “Amit” 分析 我们创建了一个只会发送一个item的被观察者, 然后用操作符

    1.3K30发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Filter”

    示例用法 Observable.just(1, 2, 3, 4, 5, 6)//创建了一个有6个数字的被观察者 .filter(new Predicate<Integer test(Integer integer) throws Exception {//对每个事件进行筛选,返回true的保留 return integer % 2 } }) .subscribe(getObserver());//这里的观察者依然不重要 运行结果 2,4,6 分析 我们创建了一个有6个数字的被观察者 然后添加操作符filter进行筛选工作 筛选逻辑这里写的是:如果能被2整除,则返回true,反之false 被观察者则只会发送能被2整除的事件,其它的丢掉 最后,我们从观察者中拿到的item为2,4,6 总结 这个系列只有干货,如果大家有什么好的建议的话欢迎在下面评论。

    81120发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Distinct”

    示例用法 Observable.just(1, 2, 1, 1, 2, 3, 4, 6, 4) // Run on a background thread .distinct()//就是去重操作 .subscribe(getObserver());//这里的观察者依然不重要 运行结果 1,2,3,4,6 分析 我们创建了一个会发送1, 2, 1, 1, 2, 3, 4, 6, 4 这些item的被观察者 其中1,2,4都有重复的数字 然后用操作符distinct去掉重复的数字 最后,我们从观察者中拿到的 item为1,2,3,4,6 总结 这个系列只有干货,如果大家有什么好的建议的话欢迎在下面评论。

    62720发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Buffer”

    运行结果 分析 首先,我们的被观察者里面有五个item,分别是1~5的英文, 然后看我们的设置 buffer(3,1) ,3为缓冲区大小,1可以理解为指针向后移动的距离 开始 (1,2,3)4,5 ->前三个item在缓存区中,分别是1,2,3;然后 1(2,3,4)5 ->缓冲区向后移动了一位,里面依然是三个item,分别是2,3,4,继续 1,2(3,4,5)->不解释,继续 1,2,3 只有一个例子还不是很好把握这个操作符,下面 如果我们改成buffer(3,2),会怎么样呢? 我直接在这里发答案咯 (1,2,3)4,5 ->开始还是一样的 1,2(3,4,5)->这是第二步,直接向后移动了两个单位 1,2,3,4(5)->直接到了这一步了,怎么样和你理解的一样么? buffer(3,2) 总结 这个算是稍微有点复杂的操作符了,不知道这种形式大家能不能理解。。 这个系列只有干货,如果大家有什么好的建议的话欢迎在下面评论。

    57810发布于 2018-08-31
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Skip”

    作用 Skip操作符可以说是上一篇Take操作符的兄弟 suppress the first n items emitted by an Observable 去掉被观察者里面的前n个item再发射事件 (就是跳过前n个item,发射剩下的item) 示例用法 Observable.just(1, 2, 3, 4, 5) // Run on a background thread on the main thread .observeOn(AndroidSchedulers.mainThread()) .skip(2) //->skip操作符,跳过前两个 .subscribe(getObserver());//这里的观察者依然不重要 运行结果 3,4,5 分析 我们创建了一个会发送1~5 五个item的被观察者 然后用操作符skip,里面的参数为2,即跳过了前两个 最后,我们从观察者中拿到的item为3,4,5 总结 这个系列只有干货,如果大家有什么好的建议的话欢迎在下面评论。

    72530发布于 2018-08-31
  • 来自专栏Android&Java技术

    RxJava2.x 操作符之 filter

    题图:Pixabay License 哈喽,朋友们,上一篇文章我们学习了 repeate 操作符,今天我们继续来学习 filter 操作符。 我们都知道 filter 是过滤的意思,也就是说这个操作符就是帮助我们来过滤掉一些我们不需要的数据。

    40420发布于 2020-02-27
  • 来自专栏Android&Java技术

    RxJava2.x 操作符之 compose

    题图:来自飞哥的图片工厂 音乐推荐:后来 文丨IT大飞说 预计阅读时间:2.3 分钟 哈喽,朋友们,之前我们学习了一些 RxJava2.x 的常用操作符,今天我们来继续学习一下 RxJava 的 compose 操作符。 compose 操作符能够从数据流中得到原始的被观察者,当创建被观察者时,compose 操作符会立即执行,而不像其他的操作符需要在 onNext() 调用后才能执行。 使用场景一 我们可以用 compose 操作符来进行线程的切换,一般用在网络请求的地方。 io.reactivex.schedulers.Schedulers import java.util.concurrent.TimeUnit /** * Created by x-sir on 2019-06-02 :) * Function:RxJava2.

    2.8K10发布于 2020-03-02
  • 来自专栏Android&Java技术

    RxJava2.x 操作符之 repeat

    题图:Pixabay License 哈喽,朋友们,上一篇文章我们学习了 from 操作符,今天我们继续来学习 repeat 操作符。 我们都知道 repeat 是重复的意思,也就是说这个操作符就是帮助我们来操作处理一些重复的数据或者操作,repeat 有三个相关的操作符:repeat、repeatWhen、repeatUntil,从字面也很好理解 2.repeatWhen 例如,我们想按顺序打印 0-3 的数字,当 2 秒后我们再重复打印一次,我们就可以这么写。 Observable.range(0, 4) .repeatWhen(objectObservable -> Observable.timer(2, TimeUnit.SECONDS 当到达 2 秒时就会重复原始的 Observable 并重新订阅和发射。

    1K20发布于 2020-03-02
  • 来自专栏Android&Java技术

    RxJava2.x 常用操作符列表

    All:判断 Observable 发射的所有的数据项是否都满足某个条件; Amb:给定多个 Observable,只让第一个发射数据的 Observable 发射全部数据; And/Then/When:通过模式(And条件)和计划(Then次序)组合两个或多个 Observable 发射的数据集; Average:计算 Observable发射的数据序列的平均值,然后发射这个结果; Buffer:缓存,可以简单理解为缓存,它定期从 Observable 收集数据到一个集合,然后把这些数据集合打包发射,而不

    1.6K10发布于 2020-02-27
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin 协程】Flow 操作符 ② ( 末端操作符 | collect 操作符 | reduce 操作符 | single 操作符 | first 操作符 | toList 操作符 )

    文章目录 一、末端操作符 1、collect 操作符 2、reduce 操作符 3、single 操作符 4、first 操作符 5、fold 操作符 6、toList 操作符 7、toSet 操作符 一、末端操作符 ---- 末端操作符 指的是 在 Flow 流最末端 调用 挂起函数 收集元素 的操作符 , 最常见的 末端操作符 就是 collect 操作符 ; 常见的末端操作符 : 收集元素 : collect 操作符原型 : /** * 终端流操作符,使用提供的[动作]收集给定的流。 collect(object : FlowCollector<T> { override suspend fun emit(value: T) = action(value) }) 2、 single 操作符原型 : /** * 终端操作符,等待一个且仅等待一个值发出。

    1.5K10编辑于 2023-03-30
  • 来自专栏一直在跳坑然后爬坑

    RxJava2操作符之“Concat”与“ConcatArray”

    作用 跟Merge操作符很像,但是这个操作符是能保证输出顺序的 Concat: emit the emissions from two or more Observables without interleaving bObservable = Observable.fromArray(bStrings); Observable.concat(aObservable, bObservable)//使用concat操作符将两个被观察者合并 extends T> source2) { return concatArray(source1, source2);//conat的内部其实是调用的`concatArray`方法 运行结果 "A1", "A2", "A3", "A4","B1", "B2", "B3" 分析 我们创建了两个被观察者,两个里面分别有不同的,很明显属于两个被观察者的一些事件。 其中: A打头的都属于第一个被观察者 B打头的都属于第二个被观察者 然后用操作符concat将两个被观察者合并 最后,他会发射出所有的7个在列表中的事件 过程:先发射第一个Observable里面所有的事件

    1.6K20发布于 2018-08-31
领券