Partiële evaluatie

Smartforms past partiële evaluatie van expressies toe. Als evaluatie van een eerste deel van de expressie al bepalend is voor het resultaat van de expressie dan wordt dit resultaat gebruikt zonder dat het resterende deel van de expressie geëvalueerd wordt.

Voorbeeld Resultaat Type Toelichting
true or false true Boolean De linker operand true bepaalt al het resultaat van de or. De rechter operand false wordt niet geëvalueerd.
true or (1 > 2 and 3 < 4) true Boolean In dit vergelijkbare voorbeeld is evaluatie van (1 > 2 and 3 < 4) niet nodig.
true or (1 / 0 = 0) true Boolean De deling door 0 zou normaliter een fout opleveren. De fout treedt niet op doordat het tweede deel van de expressie niet geëvalueerd wordt.
false and true false Boolean De linker operand false bepaalt al het resultaat van de and. De rechter operand true wordt niet geëvalueerd.
if 1 < 2 then 3 else 1 / 0 end 3 Integer De test 1 < 2 is waar en daarom is de then operand 3 het resultaat. Evaluatie van 1 / 0 is niet nodig, en gebeurt ook niet.
case when 1 < 2 then "KLEINER" when 1 = 2 then 1 / 0 else "GROTER" end "KLEINER" String De test 1 < 2 is waar en daarom is de then operand "KLEINER" het resultaat. Evaluatie van 1 / 0 gebeurt niet.