Maison> interface Web> js tutoriel> le corps du texte

Utilisation de la notation do dans les options Effect-TS

PHPz
Libérer: 2024-07-23 10:32:23
original
842 Les gens l'ont consulté

Using do Notation in Effect-TS Optionals

Effect-TS fournit un moyen puissant de gérer les opérations dans le contexte Option en utilisant la notation do. Cet article explore comment séquencer plusieurs opérations avec la notation do et présente divers scénarios à travers des exemples.

Exemple 1 : séquençage et filtrage de base

Dans cet exemple, nous lions des valeurs dans le contexte Option, calculons une somme et filtrons en fonction d'une condition.

import { Option as O, pipe } from 'effect'; function do_ex01() { const result = pipe( O.Do, O.bind('x', () => O.some(2)), // Bind x to the value 2 wrapped in Some O.bind('y', () => O.some(3)), // Bind y to the value 3 wrapped in Some O.let('sum', ({ x, y }) => x + y), // Let sum be the sum of x and y O.filter(({ x, y }) => x * y > 5) // Filter the result if x * y > 5 ); console.log(result); // Output: Some({ x: 2, y: 3, sum: 5 }) (since 2 * 3 > 5) }
Copier après la connexion

Explication :

  • Valeurs de liaison : nous lions x à 2 et y à 3, tous deux enveloppés dans Some.
  • Calcul de la somme : nous calculons la somme comme la somme de x et y.
  • Filtrage : nous filtrons le résultat en fonction de la condition x * y > 5.

La sortie est Some({ x : 2, y : 3, sum : 5 }) car la condition 2 * 3 > 5 est atteint.

Exemple 2 : Filtrage avec une condition défaillante

Cet exemple montre que si la condition de filtre échoue, le résultat est Aucun.

function do_ex02() { const result = pipe( O.Do, O.bind('x', () => O.some(1)), // Bind x to the value 1 wrapped in Some O.bind('y', () => O.some(2)), // Bind y to the value 2 wrapped in Some O.let('sum', ({ x, y }) => x + y), // Let sum be the sum of x and y O.filter(({ x, y }) => x * y > 5) // Filter the result if x * y > 5 ); console.log(result); // Output: None (since 1 * 2 <= 5) }
Copier après la connexion

Explication :

  • Valeurs de liaison : nous lions x à 1 et y à 2.
  • Calcul de la somme : nous calculons la somme comme la somme de x et y.
  • Filtrage : nous filtrons le résultat en fonction de la condition x * y > 5.

    La sortie est Aucune car la condition 1 * 2 <= 5 échoue.

    Exemple 3 : Liaison avec Aucun

    Cet exemple démontre que si une liaison est Aucune, le résultat est Aucune.

    function do_ex03() { const result = pipe( O.Do, O.bind('x', () => O.some(2)), // Bind x to the value 2 wrapped in Some O.bind('y', () => O.none()), // Bind y to None O.let('sum', ({ x, y }) => x + y), // This line won't execute since y is None O.filter(({ x, y }) => x * y > 5) // This line won't execute since y is None ); console.log(result); // Output: None (since y is `None`) } 

    Copier après la connexion

    Explication :

    • Valeurs de liaison : nous lions x à 2 et y à Aucun.
    • Saut du calcul et du filtrage : puisque y vaut Aucun, les opérations suivantes sont ignorées.

    La sortie est None car l'une des liaisons (y) estNone`.

    Résumé

    La notation do dans Effect-TS permet un séquençage élégant et lisible des opérations dans le contexte Option. En liant les valeurs, en laissant les valeurs calculées et en filtrant en fonction des conditions, nous pouvons gérer une logique facultative complexe de manière simple. Les exemples ci-dessus illustrent comment le résultat change en fonction de différentes conditions et de la présence de None.

    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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!