Effect-TS fournit diverses méthodes pour filtrer les valeurs à l'intérieur d'une option, vous permettant d'appliquer des transformations, des prédicats ou des vérifications sur la valeur facultative. Ces fonctions permettent de garantir que seules les données pertinentes sont conservées tout en supprimant les valeurs Aucune ou celles qui ne remplissent pas les conditions spécifiées. Dans cet article, nous explorerons quatre fonctions clés pour les options de filtrage : O.partitionMap, O.filterMap, O.filter et O.exists.
La fonction O.partitionMap vous permet de partitionner une Option en un tuple de deux Options basé sur une fonction de mappage qui renvoie un Soit. Les valeurs de l'un ou l'autre.left sont réparties dans la première option, tandis que les valeurs de l'autre.right vont dans la deuxième option. Si l'option d'origine est Aucune, les deux partitions sont Aucune.
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) }
Cette fonction est utile lorsque vous devez appliquer un mappage qui catégorise les valeurs, tout en les séparant en deux groupes : celles qui satisfont à une condition et celles qui ne la satisfont pas.
La fonction O.filterMap applique une fonction de transformation à la valeur à l'intérieur d'une option. Si la fonction renvoie Some, la valeur est conservée ; s'il renvoie Aucun, la valeur est filtrée. Si l'option d'origine est Aucune, le résultat reste Aucun.
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) }
Cette fonction est utile lorsque vous souhaitez à la fois transformer et filtrer la valeur à l'intérieur d'une option en fonction de conditions spécifiques.
La fonction O.filter vérifie si la valeur à l'intérieur d'une option satisfait un prédicat donné. Si le prédicat est satisfait, il renvoie l'option d'origine ; sinon, il renvoie Aucun. Si l'option d'origine est Aucune, elle reste Aucune.
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) }
La fonction O.exists vérifie si une valeur à l'intérieur d'une option satisfait un prédicat, renvoyant vrai si c'est le cas, et faux si ce n'est pas le cas. Si l'option est Aucune, elle renvoie 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) }
Cette fonction est utile lorsque vous avez besoin d'une vérification rapide pour déterminer si la valeur à l'intérieur d'une option satisfait une condition sans transformer ou filtrer l'option elle-même.
Les options de filtrage dans Effect-TS permettent une gestion flexible des valeurs facultatives basées sur des conditions ou des transformations. Que vous partitionniez des valeurs avec O.partitionMap, appliquiez des transformations avec O.filterMap, vérifiiez des prédicats avec O.filter ou vérifiiez simplement des conditions avec O.exists, ces outils fournissent des méthodes robustes pour contrôler la façon dont les options sont gérées. En utilisant ces fonctions, vous pouvez gérer efficacement les données facultatives, en garantissant que seules les valeurs pertinentes sont conservées ou traitées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!