Effect-TS는 존재할 수도 있고 존재하지 않을 수도 있는 값을 나타내는 옵션 유형을 처리하기 위한 강력한 도구 세트를 제공합니다. 이 기사에서는 라이브러리에서 제공하는 다양한 게터를 사용하여 옵션 내부의 값을 가져오는 다양한 방법을 살펴보겠습니다.
O.getOrElse 함수를 사용하면 옵션이 None인 경우 기본값을 제공할 수 있습니다. 이는 대체 값을 항상 사용할 수 있도록 하려는 경우에 유용합니다.
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) }
O.getOrThrow 함수는 Option 내부의 값이 Some인 경우 해당 값을 반환하고, 그렇지 않으면 기본 오류를 발생시킵니다.
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 } }
O.getOrNull 함수는 Option 내부의 값이 Some인 경우 해당 값을 반환하고, 그렇지 않으면 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) }
O.getOrUndefound 함수는 Option 내부의 값이 Some인 경우 해당 값을 반환하고, 그렇지 않으면 정의되지 않은 값을 반환합니다.
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 } }
이러한 다양한 getter를 사용하면 다양한 시나리오에서 Option 유형을 효과적으로 처리하여 Option이 Some인지 None인지에 관계없이 코드가 올바르게 작동하도록 할 수 있습니다. 이러한 유틸리티는 선택적 값으로 작업하는 명확하고 형식이 안전한 방법을 제공하여 null 검사와 관련된 일반적인 함정을 피하고 코드의 가독성과 유지 관리성을 향상시킵니다. 이러한 패턴을 채택하면
위 내용은 Effect-TS의 옵션 게터 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!