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.
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) }
Explication :
La sortie est Some({ x : 2, y : 3, sum : 5 }) car la condition 2 * 3 > 5 est atteint.
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) }
Explication :
La sortie est Aucune car la condition 1 * 2 <= 5 échoue.
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`) }
Explication :
La sortie est None car l'une des liaisons (y) estNone`.
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!