zoukankan      html  css  js  c++  java
  • Operator

    Operator - 操作符

    操作符可以帮助大家创建新的序列,或者变化组合原有的序列,从而生成一个新的序列。

    我们之前在输入验证例子中就多次运用到操作符。例如,通过 map 方法将输入的用户名,转换为用户名是否有效。然后用这个转化后来的序列来控制红色提示语是否隐藏。我们还通过combineLatest 方法,将用户名是否有效和密码是否有效合并成两者是否同时有效。然后用这个合成后来的序列来控制按钮是否可点击。 这里 map 和 combineLatest 都是操作符,它们可以帮助我构建所需要的序列。现在,我们再来看几个例子:

    filter - 过滤

    你可以用 filter 创建一个新的序列。这个序列只发出温度大于33度的元素。

    map - 转换

    你可以用 map 创建一个新的序列。这个序列将原有的 JSON 转换成 Model。这种转换实际上就是解析 JSON。

    zip - 配对

    你可以用 zip 来合成一个新的序列。这个序列将汉堡序列的元素和薯条序列的元素配对后,生成一个新的套餐序列。

    如何使用操作符

    使用操作符是非常容易的。你可以直接调用实例方法,或者静态方法:

    • 温度过滤

      // 温度
      let rxTemperature: Observable<Double> = ...
      
      // filter 操作符
      rxTemperature.filter { temperature in temperature > 33 }
          .subscribe(onNext: { temperature in
              print("高温:(temperature)度")
          })
          .disposed(by: disposeBag)
    • 解析JSON

      // JSON
      let json: Observable<JSON> = ...
      
      // map 操作符
      json.map(Model.init)
          .subscribe(onNext: { model in
              print("取得 Model: (model)")
          })
          .disposed(by: disposeBag)
    • 合成套餐

      // 汉堡
      let rxHamburg: Observable<Hamburg> = ...
      // 薯条
      let rxFrenchFries: Observable<FrenchFries> = ...
      
      // zip 操作符
      Observable.zip(rxHamburg, rxFrenchFries)
          .subscribe(onNext: { (hamburg, frenchFries) in
              print("取得汉堡: (hamburg) 和薯条:(frenchFries)")
          })
          .disposed(by: disposeBag)
  • 相关阅读:
    jdbc连接数据库 url
    解决IntelliJ IDEA 使用 TOMCAT 中文乱码问题
    web.xml 4.0 头部信息
    jar包冲突解决方案
    idea 快捷键
    基于单片机的车辆防碰撞及自动刹车系统(STC89C52RC芯片+超声波传感器HC-SR04+液晶屏1602+继电器+蜂鸣器)
    电子时钟万年历+51单片机+1602液晶屏+DS1302+DS18B20+按键
    1008 数组元素循环右移问题(PAT)
    1007 素数对猜想(PAT)
    1006 换个格式输出整数(PAT)
  • 原文地址:https://www.cnblogs.com/muzichenyu/p/14846706.html
Copyright © 2011-2022 走看看