HH\Lib\C\nfirst

Meta Engineer?

This is available as C\nfirst in the www repository.

Returns the first element of the given Traversable, or null if the Traversable is null or empty

namespace HH\Lib\C;

function nfirst<T>(
  ?Traversable<T> $traversable,
): ?T;
  • For non-null Traversables, see C\first.
  • For non-empty Traversables, see C\firstx.
  • For single-element Traversables, see C\onlyx.

Time complexity: O(1) Space complexity: O(1)

Parameters

Returns

  • ?T

Examples

$strings = vec["a", "b", "c"];
$first_string = C\nfirst($strings);
echo "First string in traversable: $first_string \n";
//Output: First string in traversable: a 

$empty_traversable = vec[];
$first_element = C\nfirst($empty_traversable);
$first_element_as_string = $first_element ?? "null";
echo "First element in empty traversable: $first_element_as_string";
//Output: First element in empty traversable: null