2010-02-10 65 views

回答

6

自CF8以來,ColdFusion支持雙管道(以及雙連字符)。自從學習之後,我總是使用雙管道/雙連字符而不是OR/AND。我用這種風格編碼的原因是,對於正在執行的操作,「OR」不完全是描述性的。有短路的按位OR,邏輯OR和邏輯OR。

位或:01 | 10 = 11

邏輯OR:buildErrorsOn(form.varA) | buildErrorsOn(form.varB)

邏輯OR(短路):isDefined('url.doStuff') || isDefined('url.doStuff')

在幾乎你現在可以用任何語言(甲骨文似乎是一個顯着例外),雙管總是意味着邏輯或或短路。這是一個精確的符號。

+0

儘管我更喜歡||和&&,我不得不承認,人們更容易誤解||爲|而不是誤認爲長期版本OR和BitOr。至少在一開始.. – Leigh 2010-02-10 16:28:08

2

有可能是在CF9支持帶來的奇偶這些關鍵字,但我無法找到一個參考,以表明。真的,你可能最好在CFIF中使用OR關鍵字,並保存||用於SQL查詢中的字符串連接。

2

它看起來像||自CF8以來一直受到支持。 CF8 documentation

我總是發現「或」更直觀。 (對於這個問題,我總是在SQL中使用「+」作爲字符串連接 - 或者是SQL Server專有的)?

+0

是的,對於SQL「+」是SQL Server特有的。如果內存服務,Oracle使用「||」 (令人困惑地;),MySQL CONCAT(),... – Leigh 2010-02-10 15:50:52

+0

人們希望(或者至少希望)至少可以在一個簡單的邏輯運算符上達成一致: -/ – 2010-02-10 16:01:54

+0

哈哈..我們可以_wish_。但這就是所有。 – Leigh 2010-02-10 17:10:28

3

我更喜歡||在CFSCRIPT中和在CFML中是OR。

相關問題