Effect-TS fournit un ensemble d'outils robustes pour gérer les types d'options, qui représentent des valeurs qui peuvent exister ou non. Dans cet article, nous explorerons différentes manières d'obtenir la valeur dans une option en utilisant différents getters fournis par la bibliothèque.
La fonction O.getOrElse vous permet de fournir une valeur par défaut si l'option est Aucune. Ceci est utile lorsque vous souhaitez vous assurer qu’une valeur de secours est toujours disponible.
import { Option as O, pipe } from 'effect'; function getters_ex01() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrElse(() => 'none'))); // Output: 1 (since some contains 1) console.log(pipe(none, O.getOrElse(() => 'none'))); // Output: 'none' (since none is None) }
La fonction O.getOrThrow renvoie la valeur à l'intérieur de l'option si elle est Some, sinon elle renvoie une erreur par défaut.
import { Option as O, pipe } from 'effect'; function getters_ex02() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrThrow)); // Output: 1 (since some contains 1) try { console.log(pipe(none, O.getOrThrow)); // This will throw an error } catch (e) { console.log(e.message); // Output: getOrThrow called on a None } }
La fonction O.getOrNull renvoie la valeur à l'intérieur de l'option si elle est Some, sinon elle renvoie null.
import { Option as O, pipe } from 'effect'; function getters_ex03() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrNull)); // Output: 1 (since some contains 1) console.log(pipe(none, O.getOrNull)); // Output: null (since none is None) }
La fonction O.getOrUndefined renvoie la valeur à l'intérieur de l'option si elle est Some, sinon elle renvoie undefined.
import { Option as O, pipe } from 'effect'; function getters_ex04() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrUndefined)); // Output: 1 (since some contains 1) console.log(pipe(none, O.getOrUndefined)); // Output: undefined (since none is None) }
import { Option as O, pipe } from 'effect'; function getters_ex05() { const some = O.some(1); // Create an Option containing the value 1 const none = O.none(); // Create an Option representing no value console.log(pipe(some, O.getOrThrowWith(() => new Error('Custom Error')))); // Output: 1 (since some contains 1) try { console.log(pipe(none, O.getOrThrowWith(() => new Error('Custom Error')))); // This will throw a custom error } catch (e) { console.log(e.message); // Output: Custom Error } }
En utilisant ces différents getters, vous pouvez gérer efficacement les types d'options dans divers scénarios, garantissant que votre code se comporte correctement, qu'une option soit Certaines ou Aucune. Ces utilitaires fournissent un moyen clair et sûr de travailler avec des valeurs facultatives, évitant les pièges courants associés aux vérifications nulles et améliorant la lisibilité et la maintenabilité de votre code. L'adoption de ces modèles peut conduire à des bases de code plus propres et plus robustes où
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!