HH\Vector::setAll

For every element in the provided Traversable, stores a value into the current Vector associated with each key, overwriting the previous value associated with the key.

Description

public function setAll(
  ?KeyedTraversable<int,Tv> $it,
): Vector<Tv>

For every element in the provided Traversable, stores a value into the current Vector associated with each key, overwriting the previous value associated with the key.

If a key is not present the current Vector that is present in the Traversable, an exception is thrown. If you want to add a value even if a key is not present, use addAll().

Future changes made to the current Vector ARE reflected in the returned Vector, and vice-versa.

Parameters

  • ?KeyedTraversable<int,Tv> $it

Return Values

  • Vector<Tv> - A shallow copy of the current Vector with the updated the values set. The current Vector is also updated.

Examples

This example shows how setAll() can be used with any KeyedTraversable:

<?hh

namespace Hack\UserDocumentation\API\Examples\Vector\SetAll;

$v = Vector {'red', 'green', 'blue', 'yellow'};

// Set the elements at 0 and 1
$v->setAll(Vector {'foo', 'bar'});
var_dump($v);

// Set the elements at 2 and 3
$v->setAll(Map {
  2 => 'baz',
  3 => 'qux',
});
var_dump($v);
Output
object(HH\Vector)#1 (4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(4) "blue"
  [3]=>
  string(6) "yellow"
}
object(HH\Vector)#1 (4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(3) "qux"
}