zoukankan      html  css  js  c++  java
  • 迭代器模式 rx 应用

    迭代器:一个特殊的对象,它包含一个next方法,next方法返回一个对象,这个对象包含两个属性,一个是value,表示成员的值,一个是done,done的值是一个布尔类型,表示迭代器是否结束。

     方法1:基于es6手动创建一个迭代器:

    const obj = {a: 'a', b: 'b', c: 'c'}
    
    obj[Symbol.iterator] = function() {
        const self = this
        const keys = Object.keys(self)
        const len = keys.length
        let pointer = 0
        return {
            next() {
                const done = pointer >= len
                const value = !done ? self[keys[pointer++]] : undefined
                return {
                    value,
                    done
                }
            }
        }
    }
    

     

    方法2: 基于es6 生成器(Generator):   调用 创建一个迭代对象。

    let creatiterators=function *(a) {
    
        if(a==1){
    
            yield "over"
        }else{
            a=1
            yield a+2;
    
            yield a+4
    
            yield {a:a}
    
        }
    }
    
    let liststream=creatiterators()
    
    
    for (const val of liststream) {
        console.log(val)
    }
    

      

  • 相关阅读:
    java I/O框架 (三)基本流
    java I/O框架 (二)文件操作(File)
    java I/O框架 (一)总览
    8.内部类
    7.权限
    6.继承
    5.代码块
    4.面向对象
    3控制语句
    PHP ksort() 函数
  • 原文地址:https://www.cnblogs.com/breakdown/p/12161636.html
Copyright © 2011-2022 走看看