【问题标题】:Hack language - Set intersection哈克语言 - 设置交点
【发布时间】:2016-07-06 16:05:32
【问题描述】:

Hack Set 有一个 difference 方法,但我没有看到名为 intersect 或任何类似的方法。

如何得到两个集合的交集?

$set1 = Set { 'a', 'x' };
$set2 = Set { 'b', 'c', 'x', 'y' };
$intersection = ??? // Set { 'x' }

文档:https://docs.hhvm.com/hack/reference/class/HH.Set/

【问题讨论】:

    标签: hacklang


    【解决方案1】:

    我不确定为什么那个函数不存在,但是你可以把这段代码放在一些实用函数中:

      $intersection = Set {};
      foreach ($other as $v) {
        if ($set->contains($v)) {
          $intersection->add($v);
        }
      }
    

    此外,您可以添加一个检查,以便迭代较小的集合。

    或者,如果你喜欢一个衬垫,这也可以:)

    $set1->filter($x ==> $set2->contains($x))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-09
      • 2021-01-31
      • 1970-01-01
      • 2010-09-09
      • 2012-04-29
      • 2016-01-31
      • 2010-09-15
      • 1970-01-01
      相关资源
      最近更新 更多