duanqi5333 2018-10-27 10:01
浏览 62

PHP:在一个也是一个Generator的函数中创建一个额外的Generator(用于通过引用传递)

I once had a function like the following:

function f(array $xs, &$responsesOut): array { // note the &
   $ys = [];
   $responsesOut = [];
   foreach ($xs as $x) {
      $response = getResponse($x);
      $ys[] = extractYFromResponse($response);
      $responsesOut[] = $response;
   }
   return $ys;
}

This worked well, until I ran into memory problems. So I used a Generator for f with respect to the $ys:

function f(array $xs, &$responsesOut): iterable {
   $responsesOut = [];
   foreach ($xs as $x) {
      $response = getResponse($x);
      yield extractYFromResponse($response);
      $responsesOut[] = $response;
   }
}

This works, but obviously not with respect to $responsesOut (as this part is unchanged). What I now want to do is to bind a Generator (instead of an array) to $responsesOut. But given that there is no new Generator(), I cannot figure out how to do this. Maybe you can help me?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值