HH\Set::zip
Throws an exception unless the current Set or the Traversable is
empty
public function zip<Tu>(
Traversable<Tu> $traversable,
): Set<HH\nothing>;
Since Sets only support integers or strings as values, we cannot have
a Pair as a Set value. So in order to avoid an
InvalidArgumentException, either the current Set or the Traversable
must be empty so that we actually return an empty Set.
Parameters
Traversable<Tu>$traversable- TheTraversableto use to combine with the elements of the currentSet.
Returns
Set<HH\nothing>- TheSetthat combines the values of the currentSetwith the providedTraversable; one of these must be empty or an exception is thrown.
Examples
This example shows that zip won't thrown an Exception if at least one of the current Set or the $traversable is empty:
// The $traversable is empty so the result will be empty
$s = Set {'red', 'green', 'blue', 'yellow'};
$zipped = $s->zip(Vector {});
\var_dump($zipped);
// The Set $s is empty so the result will be empty
$s = Set {};
$zipped = $s->zip(Vector {'My Favorite', 'My Second Favorite'});
\var_dump($zipped);
This example shows that zip will throw an Exception if the result is non-empty:
$s = Set {'red', 'green', 'blue', 'yellow'};
$zipped = $s->zip(Vector {'My Favorite', 'My Second Favorite'});
\var_dump($zipped);