首页 > 解决方案 > 如何在 Hacklang 中使用管道附加到 darray

问题描述

我正在尝试将项目添加到 darray

    |> darray(JSON::decodeMap($$))

我想再追加一项

discover_arg => xxxxx 在这个 darray 中,我怎么能做到这一点?

标签: phppipehacklang

解决方案


如果您能够使用这些而不是 darray,则 s有一个合并功能dict

但是为了一个潜在的大数组中的一个元素,我不会使用它——许多 HSL 函数通常会导致对恒定时间/空间事物的线性惩罚。它们是不可变的函数,并且 PHP/Hack 的集合没有实现快速部分克隆(如链表和树)。

冒着弄乱管道纯度的风险,特别是如果你真的在生成它之后立即设置这个元素,你可能只是让你自己的 lambda set + return:

  |> darray(JSON::decodeMap($$))
  |> ((darray<string, string> $d) ==> { $d['discover_arg'] = 'xxxxx'; return $d; })($$)

推荐阅读