Maison > interface Web > js tutoriel > Explorer les getters d'options dans Effect-TS

Explorer les getters d'options dans Effect-TS

王林
Libérer: 2024-07-18 00:37:32
original
680 Les gens l'ont consulté

Exploring Option Getters in Effect-TS

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.

Exemple 1 : Utilisation de O.getOrElse

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)
}
Copier après la connexion

Exemple 2 : Utilisation de O.getOrThrow

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
  }
}
Copier après la connexion

Exemple 3 : Utilisation de O.getOrNull

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)
}
Copier après la connexion

Exemple 4 : Utilisation de O.getOrUndefined

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)
}
Copier après la connexion

Exemple 5 : Utilisation de O.getOrThrowWith

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
  }
}
Copier après la connexion

Conclusion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal