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. |