dedlfix: Bewerbungsgespräch

Beitrag lesen

Hi!

Kniffliger ist der Unterschied in der Priorität zwischen && und and, besonders wenn Operatoren in dem Ausdruck mitspielen, deren Priorität dazwischen liegt (?: und Zuweisungen).

Gibt es eigentlich einen Unterscheid zwischen && und AND? Höre ich jetzt zum Ersten mal. Sehr interessant, gut das ich hier oft herumlese :-)

So wie ich sagte: Priorität (oder besser Precedence / Rangfolge)

foo && bar ? qux : baz
  foo and bar ? qux : baz

In der ersten Zeile wird zunächst foo und bar berechnet und dessen Ergebnis als Bedingung für den ternären Operator verwendet. Für die zweite Zeile ist bar die Bedingung und das Ergebnis (qux oder baz) ist der rechte Operand vom and. Das hat auch Auswirkungen auf das Kurzschluss-Verfahren. Wenn in der zweiten Zeile foo schon false ergibt, wird der Teil rechts vom and nicht mehr ausgewertet, weil das Ergebnis sich dadurch nicht ändert. Die &&-Variante führt immerhin qux oder baz aus. (Ist vor allem von Belang, wenn qux/baz Funktionen mit Nebenwirkungen sind.)

Natürlich umgeht man diese Unsicherheit und bringt seine Intention deutlicher zum Ausdruck, wenn man die zusammengehörigen Teilausdrücke klammert.

Lo!