【问题标题】:When to use || vs. OR in ColdFusion in a <cfif>?何时使用 ||与 <cfif> 中 ColdFusion 中的 OR 比较?
【发布时间】:2011-01-15 07:40:59
【问题描述】:

我什么时候使用“OR”与 ||在 ColdFusion cfif 语句中?

【问题讨论】:

    标签: syntax coldfusion if-statement


    【解决方案1】:

    自 CF8 以来,ColdFusion 支持双管道(以及双 & 符号)。自从了解到这一点后,我总是使用双管道/双&符号而不是 OR/AND。我使用这种风格编码的原因是“OR”对于正在执行的操作并不完全描述。有按位或、逻辑或和短路逻辑或。

    按位或:01 | 10 = 11

    逻辑或:buildErrorsOn(form.varA) | buildErrorsOn(form.varB)

    逻辑或(短路):isDefined('url.doStuff') || isDefined('url.doStuff')

    在您现在可以使用的几乎任何语言中(Oracle 似乎是一个明显的例外),双管道总是意味着逻辑或短路。这是一个精确的符号。

    【讨论】:

    • 虽然我更喜欢 ||和&&,我不得不承认它更可能会出错||为|而不是误认为 OR 和 BitOr 的长手版本。至少一开始..
    【解决方案2】:

    我更喜欢 || CFSCRIPT 和 CFML 中的 OR。

    【讨论】:

      【解决方案3】:

      CF9 中可能有对这些关键字带来同等作用的支持,但我找不到表明这一点的参考资料。真的,您最好只在 CFIF 中使用 OR 关键字,并保存 ||用于 SQL 查询中的字符串连接。

      【讨论】:

        【解决方案4】:

        看起来像 ||从 CF8 开始支持。 CF8 documentation

        我总是觉得“或”更直观。 (就此而言,我总是在 SQL 中使用“+”来连接字符串 - 还是 SQL Server 独有的?)

        【讨论】:

        • 是的,因为 sql "+" 是特定于 SQL Server 的。如果没有记错,Oracle 使用“||” (令人困惑;),MySQL CONCAT(),...
        • 人们希望(或至少希望)至少在一个简单的逻辑运算符上达成一致:-/
        • 哈哈..我们可以希望。但仅此而已。
        【解决方案5】:

        对此不确定,但似乎cfif 语句仅支持 OR,因此您的问题的答案是“始终”。看到这个:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多