Effect-TS fornece vários métodos para filtrar valores dentro de uma Opção, permitindo que você aplique transformações, predicados ou verificações no valor opcional. Essas funções ajudam a garantir que apenas os dados relevantes sejam retidos enquanto descartam valores None ou aqueles que não atendem às condições especificadas. Neste artigo, exploraremos quatro funções principais para opções de filtragem: O.partitionMap, O.filterMap, O.filter e O.exists.
A função O.partitionMap permite particionar uma Opção em uma tupla de duas Opções com base em uma função de mapeamento que retorna um Ou. Os valores de Both.left são particionados na primeira opção, enquanto os valores de Both.right vão para a segunda opção. Se a opção original for None, ambas as partições serão None.
function filtering_ex01() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const toEither = (n: number) => (n % 2 === 0 ? E.left(n) : E.right(n)); console.log(pipe(some, O.partitionMap(toEither))); // Output: [None, Some(1)] (1 is odd, so it goes to the right) console.log(pipe(none, O.partitionMap(toEither))); // Output: [None, None] (since the Option is None) }
Esta função é útil quando você precisa aplicar um mapeamento que categoriza valores, enquanto os separa em dois grupos - aqueles que satisfazem uma condição e aqueles que não o fazem.
A função O.filterMap aplica uma função de transformação ao valor dentro de uma Opção. Se a função retornar Some, o valor será retido; se retornar None, o valor será filtrado. Se a opção original for None, o resultado permanecerá None.
function filtering_ex02() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const toEven = (n: number) => (n % 2 === 0 ? O.some(n) : O.none()); console.log(pipe(some, O.filterMap(toEven))); // Output: None (since 1 is not even) console.log(pipe(O.some(2), O.filterMap(toEven))); // Output: Some(2) (since 2 is even) console.log(pipe(none, O.filterMap(toEven))); // Output: None (since the original Option is None) }
Esta função é útil quando você deseja transformar e filtrar o valor dentro de uma Opção com base em condições específicas.
A função O.filter verifica se o valor dentro de uma Option satisfaz um determinado predicado. Se o predicado for satisfeito, ele retorna a Opção original; caso contrário, retornará Nenhum. Se a opção original for None, ela permanecerá None.
function filtering_ex03() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const isEven = (n: number) => n % 2 === 0; console.log(pipe(some, O.filter(isEven))); // Output: None (since 1 is not even) console.log(pipe(O.some(2), O.filter(isEven))); // Output: Some(2) (since 2 is even) console.log(pipe(none, O.filter(isEven))); // Output: None (since the original Option is None) }
A função O.exists verifica se um valor dentro de uma Option satisfaz um predicado, retornando verdadeiro se satisfaz, e falso se não satisfaz. Se a opção for None, ela retornará false.
function filtering_ex04() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value const isEven = (n: number) => n % 2 === 0; console.log(pipe(some, O.exists(isEven))); // Output: false (since 1 is not even) console.log(pipe(O.some(2), O.exists(isEven))); // Output: true (since 2 is even) console.log(pipe(none, O.exists(isEven))); // Output: false (since the original Option is None) }
Esta função é útil quando você precisa de uma verificação rápida para determinar se o valor dentro de uma Opção satisfaz uma condição sem transformar ou filtrar a própria Opção.
As opções de filtragem no Effect-TS permitem o tratamento flexível de valores opcionais com base em condições ou transformações. Esteja você particionando valores com O.partitionMap, aplicando transformações com O.filterMap, verificando predicados com O.filter ou simplesmente verificando condições com O.exists, essas ferramentas fornecem métodos robustos para controlar como as opções são tratadas. Ao usar essas funções, você pode gerenciar dados opcionais de forma eficiente, garantindo que apenas os valores relevantes sejam mantidos ou aplicados.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3