含意:ステートメントA IMP Bは、論理ステートメント「IfAThenB」と同等です。AがTrueでBがFalseの場合にのみ、IMPBはFalseになります。それ以外の場合はすべて真です。
http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec09d55-7ffc.html
大学からの「含意」とは何かを漠然と覚えています。実世界でIMP演算子を使用するのはいつですか?
含意:ステートメントA IMP Bは、論理ステートメント「IfAThenB」と同等です。AがTrueでBがFalseの場合にのみ、IMPBはFalseになります。それ以外の場合はすべて真です。
http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec09d55-7ffc.html
大学からの「含意」とは何かを漠然と覚えています。実世界でIMP演算子を使用するのはいつですか?
現実の世界では、オプションのパラメーターで検証を実行するために、次のようなことができると便利です。
<cfif structKeyExists(URL, "a") IMP validateId(URL.a)>
ここで、URL.a が存在する場合の検証のみを考慮します。それは、IMP の最も有用なアプリケーションである IMO に関するものです (そうですね)。
ただし、IMP の実装のバグにより、これは機能しません :-(
短縮されたバージョンよりもはるかに長い (そして正しくない) ロジックが読みやすいという Dale の主張は、自明のことであり、怪しい前提に基づいていると思います。彼の立場は、「何かを知らない人」は継続的な状態であるという考えに基づいています。つまり、誰かが何かを知らない場合 (「IMP」の意味など)、その人はそれを永遠に知りません。本当じゃない。人は最初は何も知らないかもしれませんが、一度それについて知ると、それについて知るようになります. したがって、IMP オレーターがどのように機能するかを知らないという問題は、非常に短命です。
IMP が必要になる状況はあまり発生しないと思いますが、あると便利です。そして、それが適切に機能すれば、さらに便利になります;-)
私はあなたがそれを避けるべきだと思う. 他の開発者は、それが何を意味するのかほとんど理解できません。
むしろ書きたい
<cfif a eq true and b eq false>
よりも
<cfif a imp b>
最初のものはより明確です。