Effect-TS는 do 표기법을 사용하여 Option 컨텍스트 내에서 작업을 처리하는 강력한 방법을 제공합니다. 이 문서에서는 do 표기법을 사용하여 여러 작업의 순서를 지정하는 방법을 살펴보고 예제를 통해 다양한 시나리오를 보여줍니다.
이 예에서는 옵션 컨텍스트 내에서 값을 바인딩하고, 합계를 계산하고, 조건에 따라 필터링합니다.
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) }
설명:
조건이 2 * 3 >이므로 출력은 Some({ x: 2, y: 3, sum: 5 })입니다. 5가 충족되었습니다.
이 예에서는 필터 조건이 실패할 경우 결과가 없음임을 보여줍니다.
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) }
설명:
조건 1 * 2 <= 5가 실패하므로 출력은 None입니다.
이 예는 바인딩이 None이면 결과도 None임을 보여줍니다.
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`) } </p>
설명:
바인딩(y) 중 하나가None`이므로 출력은 None입니다.
Effect-TS의 do 표기법을 사용하면 Option 컨텍스트 내에서 우아하고 읽기 쉬운 작업 순서를 지정할 수 있습니다. 값을 바인딩하고, 계산된 값을 허용하고, 조건에 따라 필터링함으로써 복잡한 선택적 논리를 간단한 방식으로 처리할 수 있습니다. 위의 예는 다양한 조건과 없음 유무에 따라 결과가 어떻게 변하는지 보여줍니다.
위 내용은 Effect-TS 옵션에서 do 표기법 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!