前言

本篇文章将要学习RxSwift中数学和集合操作符,在RxSwift中包括了:

  • toArray
  • reduce
  • concat

toArray

将一个Observable序列转化为一个数组,并转换为一个新的Observable序列发射,然后结束。

  1. let disposeBag = DisposeBag()
  2. Observable.of(1,2,3,4,5).toArray().subscribe(onNext: {print($0)}).disposed(by: disposeBag)

运行结果:

  1. [1, 2, 3, 4, 5]

reduce

使用一个初始值和一个操作符,对Observable序列中的所有元素进行累计操作,并转换成单一事件信号。(PS:和map有的区别就是:map针对单个元素进行操作,reduce针对所有元素累计操作)

  1. let disposeBag = DisposeBag()
  2. Observable.of(1,10,100).reduce(1, accumulator: +).subscribe(onNext: {print($0)}).addDisposableTo(disposeBag)

运行结果:

  1. 112

concat

将两个Observable序列合并成一个Observable序列,当一个Observable序列中的所有元素成功发射完成之后,才会发射另一个Observable序列中的元素。

在第一个Observable发射完成之前,第二个Observable发射的事件都会被忽略,但会接收第一个Observable发射完成前第二个Observable发射的最后一个事件。

不好理解,举个例子:

  1. let disposeBag = DisposeBag()
  2. let subject1 = BehaviorSubject(value: "
  3. RxSwift 系列(六) -- Mathematical and Aggregate Operators的更多相关文章

      1. RxSwift 系列(五) -- Filtering and Conditional Operators
      1. 前言 本篇文章将要学习RxSwift中过滤和条件操作符,在RxSwift中包括了: filter distinctUntilChanged elementAt single take takeLast ...

      1. RxSwift 系列(六)
      1. 前言 本篇文章将要学习RxSwift中数学和集合操作符,在RxSwift中包括了: toArray reduce concat toArray 将一个Observable序列转化为一个数组,并转换为一 ...

      1. RxSwift 系列(三) -- Combination Operators
      1. RxSwift 系列(三) -- Combination Operators 前言 本篇文章将要学习如何将多个Observables组合成一个Observable. Combination Opera ...

      1. R语言数据分析系列六
      1. R语言数据分析系列六 -- by comaple.zhang 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候怎样下手分析,数据分析的第一步.探索性数据分析. 统计量,即统计学里面关注的数据集 ...

      1. RxSwift 系列(三)
      1. RxSwift 系列(三) -- Combination Operators 前言 本篇文章将要学习如何将多个Observables组合成一个Observable.Combination Operat ...

      1. CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
      1. 我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...

      1. WCF编程系列(六)以编程方式配置终结点
      1. WCF编程系列(六)以编程方式配置终结点   示例一中我们的宿主程序非常简单:只是简单的实例化了一个ServiceHost对象,然后调用open方法来启动服务.而关于终结点的配置我们都是通过配置文件来 ...

      1. SQL Server 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性
      1. 原文:SQL Server 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 ...

      1. java基础解析系列(六)---深入注解原理及使用
      1. java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer ja ...

    1. 随机推荐

        1. (转)wxWidgets 2.9.2svn(3.x)最小体积编译方法
        1. 官方论坛.网上记录的wxWidgets编译方法,会导致编译后的程序库非常大,原因在于对编译的方法选择不当.下面简单总结一下如何编译最新的SVN代码.下载最新源码(每日构建):http://biolpc ...

        1. RPM安装软件
        1. RMP:rpm命令详解.注意事项.rpm仓库.安装实例.srpm:源码rpm RPM Package Manager 由Red Hat公司提出,被众多Linux发行版所采用: 建立统一的数据库文件,详 ...

        1. CEF3 获取Cookie例子 CefCookieManager C++
        1. 首先从cef_cookie.h 源码种看到CefCookieManager 这个类: // Visit all cookies on the IO thread. The returned cooki ...

        1. Xamarin App文件(apk)大小和启动时间的影响因素
        1. Xamarin开发的时候大家都有一个疑问,就是apk文件会不会特别的大,启动会不会很慢.答案是肯定的,文件肯定大,启动肯定会慢,但是具体大多少.具体慢多少,有什么因素可以使apk文件稍微小一点.可以使 ...

        1. APUE-文件和目录(四)文件系统
        1. 一个命令 mkfs 讲文件系统前先介绍一个用于创建文件系统的命令: mkfs mkfs [options] [-t type fs-options] device [size] 描述 mkfs用来在设 ...

        1. PHP编译
        1. 编译php-5.3.6的时候需要先打一个内存泄露的补丁,具体的操作如下 tar vzxf suhosin-0.9.32.1.tar.gz tar vjxf php-5.3.6.tar.bz2 cd p ...

        1. web存储之webstorage
        1. web存储分类 客户端和服务端 认识web存储 随着web应用的发展,是的客户端存储的用途越来越多,然而实现客户端端存储的方式也是越来越多样化.最简单最兼容的方式就是cookie,但作为真正的客户端存 ...

        1. 关系数据标准语言SQL之数据查询
        1. 数据查询是数据库的核心操作.SQL提供了SELECT语句进行数据查询,该语句具有灵活的使用方式和丰富的功能. 其一般格式为 select [all | distinct]<目标表达式>[, ...

        1. C++判断一个数字是否为质数
        1. 关于素数的算法是程序竞赛比较重要的数论知识,我们来看通常会使用的几个算法. 我们先来复习几个基本概念: 质数:对于大于1的自然数,若除了1和它本身,没有别的因数,则称这个数为质数,质数也叫素数.反之, ...

        1. ajax、PHP、session做购物车
        1. 购物车网页代码 1.登录界面login.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...