O.andThen 함수를 사용하면 두 옵션의 시퀀스를 실행할 수 있으며, 여기서 결과는 두 번째 옵션에 의해서만 결정됩니다. 이는 첫 번째 옵션이 목적을 달성할 때 유용하지만 후속 작업에서는 해당 값이 필요하지 않습니다.
function sequencing_ex01() { const some1 = O.some(1); // Create an Option containing the value 1 const some2 = O.some(2); // Create an Option containing the value 2 const none = O.none(); // Create an Option representing no value console.log(pipe(some1, O.andThen(some2))); // Output: Some(2) (ignores 1 and returns 2) console.log(pipe(none, O.andThen(some2))); // Output: None (since the first Option is None) }
이 시퀀싱 작업은 작업을 연결하고 싶지만 두 번째 작업의 결과에만 관심이 있는 경우에 특히 유용합니다.
O.Flatten 기능은 한 수준의 중첩을 제거하여 중첩된 옵션을 처리하도록 설계되었습니다. 이는 작업 결과가 옵션 중 하나이고 이를 단일 옵션으로 단순화해야 하는 경우에 유용합니다.
function sequencing_ex02() { const nestedSome = O.some(O.some(1)); // Create a nested Option containing the value 1 const nestedNone = O.some(O.none()); // Create a nested Option representing no value const none = O.none(); // Create an Option representing no value console.log(pipe(nestedSome, O.flatten)); // Output: Some(1) (flattens the nested Option) console.log(pipe(nestedNone, O.flatten)); // Output: None (flattens to None) console.log(pipe(none, O.flatten)); // Output: None (since the outer Option is None) }
중첩된 옵션을 반환할 수 있는 함수를 처리할 때 평면화는 필수적입니다. 이를 통해 결과를 단일 옵션 값으로 간소화할 수 있습니다.
O.composeK 함수를 사용하면 옵션을 반환하는 두 개의 함수를 구성하여 첫 번째 함수의 출력이 두 번째 함수에 공급되는 파이프라인을 만들 수 있습니다. 이는 실패하여 None이 될 수 있는 연결 작업에 특히 유용합니다.
function sequencing_ex03() { const parseNumber = (s: string): O.Option=> { const n = parseInt(s, 10); return isNaN(n) ? O.none() : O.some(n); }; const doubleIfPositive = (n: number): O.Option => n > 0 ? O.some(n * 2) : O.none(); const parseAndDouble = pipe(parseNumber, O.composeK(doubleIfPositive)); console.log(parseAndDouble('42')); // Output: Some(84) (parses and doubles the number) console.log(parseAndDouble('-1')); // Output: None (since -1 is not positive) console.log(parseAndDouble('abc')); // Output: None (since 'abc' is not a number) }
옵션 반환 함수를 구성하면 체인의 모든 단계가 실패할 수 있는 경우를 안전하게 처리하면서 복잡한 작업 체인을 만들 수 있습니다.
이 예제는 일련의 작업을 처리하기 위한 Effect-TS의 Option 유형의 다양성과 강력함을 보여줍니다. O.andThen을 사용하여 값을 무시하거나, O.Flaten을 사용하여 중첩된 옵션을 평면화하거나, O.composeK를 사용하여 작업을 구성하는 경우 이러한 패턴을 사용하면 함수형 프로그래밍 컨텍스트에서 선택적 값을 보다 효과적으로 관리할 수 있습니다. 이러한 기술을 활용하면 보다 강력하고 간결한 코드를 작성할 수 있으며 명확하고 읽기 쉬운 논리를 유지하면서 작업이 값의 부재를 우아하게 처리하도록 보장할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3