Voorrangsregels
Volgorde van evaluatie
De evaluatie van expressies gebeurt volgens de gebruikelijke voorrangsregels. Bijvoorbeeld een * gaat vóór op een +, de evaluatie gebeurt standaard van links naar rechts, en met haakjes kan een andere volgorde van evaluatie afgedwongen worden.
Voorbeeld | Resultaat | Type | Toelichting |
---|---|---|---|
2 + 3 * 4 | 14 | Integer | De * gaat vóór op de +. |
(2 + 3) * 4 | 20 | Integer | Gebruik zonodig haakjes om de voorrang af te dwingen. |
1 + 2 > 3 + 4 | false | Boolean | De + gaat vóór op de >. |
if true then 10 else 20 end + case when 1 < 2 then -1 when 1 > 2 then 1 else 0 end | 9 | Integer | De if expressie en case expressie gaan vóór op de +. |
1 + "2" + 3 | "123" | String | De evaluatie bij de gelijke operatoren is van links naar rechts. De evaluatie van 1 + "2" levert "12" op doordat de "2" een string is en de + operator dan een concatenatie is. De evaluatie van "12" + 3 levert om dezelfde reden "123" op. |
1 + 2 + "3" | "33" | String | De evaluatie van 1 + 2 is numeriek en levert 3 op. De evaluatie van 3 + "3" is een concatenatie en levert "33" op. |
1 < 2 = 3 < 4 | true | Boolean | De < gaat vóór op de =. |
true and false or true and true | true | Boolean | De and gaat vóór op de or. |
Voorrangsvolgorde
In onderstaand overzicht hebben de eerdere constructies voorrang op de latere constructies.
Constructie | Toelichting |
---|---|
Primary | Functie aanroep, expressie tussen haakjes ( en ), if expressie, case expressie, select expressie. |
Unary | Unaire operatoren, momenteel alleen de not. |
Multiplicative | De operatoren * en /. |
Additive | De operatoren + en -. |
Relational | De operatoren <, <=, >= en >. |
Equality | De operatoren = en !=. |
And | De operator and. |
Or | De operator or. |