Effect-TS は、オプションを比較するメカニズムを提供し、オプションに含まれる値に基づいてそれらの等価性または順序を決定できるようにします。これらのツールは、2 つのオプションが等しいかどうかを確認する必要がある場合、またはそれらを並べ替えたり比較する必要がある場合に役立ちます。この記事では、オプションを比較するための 2 つの主要な関数、O.getEquivalence と O.getOrder について説明します。
O.getEquivalence 関数はオプションの等価インスタンスを作成し、オプション内の値を比較できるようにします。両方のオプションが等しい場合、つまり両方に同じ値が含まれるか、両方とも None である場合、true を返します。
function equivalence_ex01() { // Get the equivalence instance for numbers const optionEquivalence = O.getEquivalence(Eq.number); console.log(optionEquivalence(O.some(1), O.some(1))); // Output: true (both Options contain 1) console.log(optionEquivalence(O.some(1), O.some(2))); // Output: false (Options contain different values) console.log(optionEquivalence(O.none(), O.some(1))); // Output: false (one Option is None) console.log(optionEquivalence(O.none(), O.none())); // Output: true (both Options are None) }
この関数は、2 つのオプションが同じ値であるか、両方とも None であるかどうかを確認する必要がある場合に便利です。
O.getOrder 関数は、オプションの順序インスタンスを作成し、それらの順序を比較して決定できるようにします。この関数は、最初のオプションが 2 番目のオプションより小さい場合は -1 を返し、大きい場合は 1 を返し、それらが等しいとみなされる場合は 0 を返します。いずれも Some より小さいとはみなされません。
function order_ex01() { // Get the order instance for numbers const optionOrder = O.getOrder(Ord.number); console.log(optionOrder(O.some(1), O.some(2))); // Output: -1 (1 is less than 2) console.log(optionOrder(O.some(2), O.some(1))); // Output: 1 (2 is greater than 1) console.log(optionOrder(O.some(1), O.some(1))); // Output: 0 (both Options contain 1) console.log(optionOrder(O.none(), O.some(1))); // Output: -1 (None is less than Some) console.log(optionOrder(O.some(1), O.none())); // Output: 1 (Some is greater than None) console.log(optionOrder(O.none(), O.none())); // Output: 0 (both Options are None) }
この関数は、オプションを並べ替えたり比較したりする必要がある場合に役立ち、一部の値が None である場合でも一貫した順序付けが保証されます。
Effect-TS は、等価性と順序付けを通じてオプションを比較するための強力なツールを提供します。 O.getEquivalence を使用すると、同じ値が含まれているか、両方が None であるかによって、2 つのオプションが同じかどうかを判断できます。一方、O.getOrder を使用すると、None が Some 値よりも小さいとみなして、Options 間で明確な順序を確立できます。これらの関数により、正確で一貫性のある比較が可能になり、関数型プログラミングのコンテキストでオプションの値を管理するための不可欠なツールとなります。
以上がEffect-TS におけるオプションの等価性と順序: 実践ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。