Na programação funcional, combinar vários valores opcionais (representados como Opções) de maneira segura e previsível é uma tarefa comum. Effect-TS fornece vários métodos para "compactar" opções, permitindo combinar seus valores ou selecionar um com base em regras específicas. Neste artigo, exploraremos três funções principais para opções de compactação: O.zipRight, O.zipLeft e O.zipWith.
A função O.zipRight permite combinar duas opções, descartando a primeira e retornando a segunda. Esta operação será bem-sucedida se ambas as opções forem Some; caso contrário, retornará Nenhum.
function zipping_ex01() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log(pipe(some1, O.zipRight(some2))); // Output: Some(2) (returns the second Option) console.log(pipe(some1, O.zipRight(none))); // Output: None (since the second Option is None) console.log(pipe(none, O.zipRight(some2))); // Output: None (since the first Option is None) }
Esta função é particularmente útil quando se deseja realizar uma operação onde o resultado depende apenas da segunda Opção.
A função O.zipLeft é a contrapartida de O.zipRight, permitindo combinar duas opções enquanto descarta a segunda e retorna a primeira. Novamente, esta operação será bem-sucedida se ambas as opções forem Some; caso contrário, retornará Nenhum.
function zipping_ex02() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log(pipe(some1, O.zipLeft(some2))); // Output: Some(1) (returns the first Option) console.log(pipe(some1, O.zipLeft(none))); // Output: None (since the second Option is None) console.log(pipe(none, O.zipLeft(some2))); // Output: None (since the first Option is None) }
Esta função é útil quando o resultado deve ser determinado pela primeira opção, mas você ainda deseja garantir que a segunda opção seja válida.
A função O.zipWith oferece maior flexibilidade, permitindo combinar os valores de duas opções usando uma função fornecida. Se ambas as opções forem Some, a função será aplicada e o resultado será agrupado em uma nova opção. Se qualquer uma das opções for None, a função retornará None.
function zipping_ex03() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value const add = (a: number, b: number) => a b; console.log(pipe(some1, O.zipWith(some2, add))); // Output: Some(3) (since 1 2 = 3) console.log(pipe(some1, O.zipWith(none, add))); // Output: None (since the second Option is None) console.log(pipe(none, O.zipWith(some2, add))); // Output: None (since the first Option is None) }
Esta função é ideal quando você precisa realizar uma operação nos valores de duas Opções, pois garante que ambos os valores estejam presentes antes da operação ser realizada.
Zipping Options no Effect-TS é uma maneira poderosa de combinar valores opcionais com segurança. Esteja você interessado na primeira Option, na segunda ou em uma combinação de ambas, as funções O.zipRight, O.zipLeft e O.zipWith fornecem as ferramentas necessárias para lidar com esses cenários com eficiência. Ao compreender e aplicar esses padrões, você pode escrever um código funcional mais robusto e previsível.
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