zoukankan      html  css  js  c++  java
  • yield生成器demo代码

    <?php

    function get_val1($n = 10000*100)
    {
    $arr = [];
    for($i = 0; $i <= $n;$i++){
    $arr[] = $i;
    if(($i % 100000) == 0){
    echo round(memory_get_usage() / 1024 / 1024 ,2) . " MB<br>";
    }
    }
    return $arr;
    }

    function get_val2($n = 100)
    {
    for($i = 0; $i <= $n;$i++){
    yield $i;
    if(($i % 10) == 0){
    echo round(memory_get_usage() / 1024 / 1024 ,2) . " MB<br>";
    }
    }
    }
    $a = get_val2();

    foreach($a as $k => $v){
    // echo "$v <br>";
    }

    //使用生成器来读取文件
    function readTxt()
    {
    //1.打开文件
    $file = fopen('./a.txt','r');

    //2.读取文件
    while (!feof($file)){
    yield fgets($file , 1024);
    }

    //3.关闭文件
    fclose($file);
    }

    $content = readTxt();

    foreach($content as $v){
    echo $v . '<br>';
    }

    function gen(){
    $id = 2;
    $id = yield $id;
    echo $id;
    }

    $gen = gen();
    $gen->send(1000);









  • 相关阅读:
    哈夫曼树
    MongoDB
    Node.js 搭建Web
    Node.js
    HDFS编程
    scp
    MapRecude
    级数
    (转)MySQL百万级数据库优化
    ssh
  • 原文地址:https://www.cnblogs.com/myJuly/p/13737707.html
Copyright © 2011-2022 走看看