Package: effect
Module: Array
Pattern-matches on an array, handling empty and non-empty cases separately.
When to use
Use when you need to branch on whether an array is empty.
Details
onNonEmpty receives a NonEmptyReadonlyArray. Supports both data-first and
data-last usage.
Example (Branching on emptiness)
import { Array } from "effect"
const describe = Array.match({
onEmpty: () => "empty",
onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`
})
console.log(describe([])) // "empty"
console.log(describe([1, 2, 3])) // "head: 1, tail: 2"
See
matchLeft — destructures into head + tailmatchRight — destructures into init + lastSignature
declare const match: { <B, A, C = B>(options: { readonly onEmpty: LazyArg<B>; readonly onNonEmpty: (self: NonEmptyReadonlyArray<A>) => C; }): (self: ReadonlyArray<A>) => B | C; <A, B, C = B>(self: ReadonlyArray<A>, options: { readonly onEmpty: LazyArg<B>; readonly onNonEmpty: (self: NonEmptyReadonlyArray<A>) => C; }): B | C; }
Since v2.0.0