3 Stimmen

Wann sollte man in ColdFusion in einem <cfif> || vs. OR verwenden?

Wann verwende ich ein "OR" und wann ein || in einer ColdFusion cfif-Anweisung?

7voto

Eric Kolb Punkte 996

Double Pipe (sowie Double Ampersand) werden in ColdFusion seit CF8 unterstützt. Seitdem ich das gelernt habe, verwende ich immer Double Pipe/Double Ampersand anstelle von OR/AND. Der Grund, warum ich mit diesem Stil kodiere, ist, dass "OR" im Hinblick auf die durchgeführte Operation nicht vollständig beschreibend ist. Es gibt bitweises ODER, logisches ODER und logisches ODER mit Kurzschluss.

Bitweises OR: 01 | 10 = 11

Logisches ODER: buildErrorsOn(form.varA) | buildErrorsOn(form.varB)

Logisches ODER (Kurzschluss): isDefined('url.doStuff') || isDefined('url.doStuff')

In so ziemlich jeder Sprache, die Sie derzeit verwenden können (Oracle scheint eine bemerkenswerte Ausnahme zu sein), bedeutet Double Pipe immer Logical-OR mit Kurzschluss. Es ist eine präzise Notation.

6voto

Aaron Greenlee Punkte 4542

Ich bevorzuge || in CFSCRIPT und OR in CFML.

2voto

Goyuix Punkte 22754

Möglicherweise gibt es in CF9 eine Unterstützung, die diese Schlüsselwörter gleichwertig macht, aber ich konnte keinen Hinweis darauf finden. In Wirklichkeit ist es wahrscheinlich besser, nur das Schlüsselwort OR in CFIF zu verwenden und den || für die String-Verkettung in SQL-Abfragen zu verwenden.

2voto

Matt Gutting Punkte 33

Es sieht so aus, als ob || seit CF8 unterstützt wird. CF8-Dokumentation

Ich finde "oder" immer intuitiver. (Übrigens verwende ich in SQL immer "+" für die Verkettung von Zeichenfolgen - oder gibt es das nur in SQL Server?)

0voto

Tatu Ulmanen Punkte 119424

Ich bin mir nicht sicher, aber es hat den Anschein, dass ein cfif Anweisung unterstützt nur OR, die Antwort auf Ihre Frage lautet also "immer". Siehe dies:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X