Когда использовать || ИЛИ в ColdFusion в <cfif>? - PullRequest
3 голосов
/ 10 февраля 2010

Когда я использую «ИЛИ» против || в выражении ColdFusion cfif?

Ответы [ 5 ]

7 голосов
/ 10 февраля 2010

Двойная труба (а также двойной амперсанд) поддерживаются в ColdFusion начиная с CF8. С тех пор, как я это узнал, я всегда использую двойную трубу / двойной амперсанд вместо ИЛИ / И. Причина, по которой я кодирую с этим стилем, заключается в том, что «ИЛИ» не является полностью описательным в отношении выполняемой операции. Есть побитовое ИЛИ, логическое ИЛИ и логическое ИЛИ с коротким замыканием.

Побитовое ИЛИ: 01 | 10 = 11

Логическое ИЛИ: buildErrorsOn(form.varA) | buildErrorsOn(form.varB)

Логическое ИЛИ (короткое замыкание): isDefined('url.doStuff') || isDefined('url.doStuff')

Практически на любом языке, который вы можете использовать прямо сейчас (Oracle, похоже, является заметным исключением), двойной канал всегда означает логическое ИЛИ с коротким замыканием. Это точное обозначение.

4 голосов
/ 11 февраля 2010

Я предпочитаю || в CFSCRIPT и ИЛИ в CFML.

2 голосов
/ 10 февраля 2010

Может быть поддержка в CF9, которая обеспечивает паритет для этих ключевых слов, хотя я не смог найти ссылку, чтобы указать это. На самом деле, вам, вероятно, лучше просто использовать ключевое слово OR в CFIF и сохранить || для конкатенации строк в запросах SQL.

2 голосов
/ 10 февраля 2010

Похоже, || поддерживается с CF8. Документация CF8

Я всегда нахожу "или" более интуитивным. (В этом отношении я всегда использую «+» для конкатенации строк в SQL - или это исключительно для SQL Server?)

0 голосов
/ 10 февраля 2010

Не уверен насчёт этого, но может показаться, что оператор cfif поддерживает только OR, поэтому ответ на ваш вопрос «всегда». Смотрите это:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...