2016-11-02 2 views
2

Dies kann eine dumme Frage, aber ich bin gespannt, wie das funktioniert -Groovy Elvis-Operator mit und Logik

Wenn ich einen Elvis-Operator mit einer und/oder Logik in der dann Klausel, wie soll ich das schreiben Betrieb? Das klingt verwirrend, ich weiß, so lassen Sie mich ein Beispiel geben ...

testVal = test1 ?: test2 && test3 

alles ist auf der rechten Seite des Elvis Betreiber eine separate Einheit betrachtet, oder ist es nur das, was sofort nach rechts?

Bedeutung, ist groovy den Code als

testVal = (test1 ?: test2) && test 3 

Wenn test1 ausfällt, tun test2 lesen - lassen Sie uns dieses Ergebnis test12 nennen. testVal = test12 & & test3

oder hat sie lesen es als

test1 ?: (test2 && test3) 

Wenn test1 ausfällt, tun test2 und Test 3 - lassen Sie uns dieses Ergebnis test23 nennen. testVal = test1 & & test23

Antwort

4

Groovy documentation besagt, dass && Betreiber höhere Priorität als ?: hat. So wird der Code als test1 ?: (test2 && test3) ausgeführt.

+0

Perfekt. Vielen Dank! – Apolymoxic