Type conversie

Type conversies in binaire expressies

Tijdens het evalueren van een expressie zijn waarden getypeerd. Een waarde is bijvoorbeeld een string of een integer.

Smartforms past automatisch type conversie toe wanneer dat nodig is en als dat zinvol is.

Hieronder staan voorbeelden van type conversie in binaire expressies. Dat zijn expressies met een linkerwaarde, een operator zoals een +, en een rechterwaarde.

Voorbeeld Resultaat Type Toelichting
1 + 2 3 Integer De som van twee integers levert een integer op.
1 + 2.0 3.0 Double Conversie van 1 naar 1.0, daarna de +.
"ab" + "CD" "abCD" String De + van strings is gedefinieerd als een concatenatie. Gebruik echter bij voorkeur de concat(...) functie en gebruik de + voor numerieke waarden.
concat("ab", "CD") "abCD" String Equivalent van bovenstaande expressie.
"ab" * "CD" - - Fout. De * is niet gedefinieerd voor strings.
"3" * 4 12 Integer Type interpretatie van de string "3", conversie naar de integer 3, daarna de *. De Zie ook lijst onderaan deze pagina verwijst naar een uitleg over type interpretatie.
"3" + 4 "34" String De + werkt als concatenatie doordat een string voor komt in de expressie. Zie boven; gebruik bij voorkeur concat("3", 4).
integer("3") + 4 7 Integer De werking van + als concatenatie is een numerieke + geworden doordat er geen strings meer voor komen in de expressie.
"true" and false false Boolean Type interpretatie van de string "true", conversie naar de boolean true, daarna de and.
true + "4" "true4" String Conversie van de boolean true naar de string "true", daarna concatenatie door middel van de +.
"4" + true "4true" String Als hierboven.

Type conversies bij het aanroepen van een functie

Smartforms past ook automatische type conversie toe bij het aanroepen van een functie.

Van elke functie is bekend welke types toegestaan zijn voor de argumenten van de functie. Bij een functieaanroep gebruikt Smartforms de argumenten voor zover die al van de door de functie ondersteunde types zijn, en voert type conversie uit voor de overige argumenten als dit de functieaanroep mogelijk maakt.

Hieronder staan voorbeelden van type conversie bij het aanroepen van functies.

Voorbeeld Resultaat Type Toelichting
abs(-3) 3 Integer De absolute waarde van -3 is 3.
abs("-3") 3 Integer Type interpretatie van de string "-3". Dit geeft integer -3. Daarna de absolute waarde.
max(3, 4, "5", 2) 5 Integer De max functie verwacht numerieke waarden. Type interpretatie van de string "5".
max(3.0, 4, "5", 2) 5.0 Double Type interpretatie van "5" zoals hierboven. Type conversie van de integer argumenten naar doubles, omdat een double voorkomt in de lijst van argumenten.
length(999) 3 Integer De length(...) functie verwacht een string argument; geen integer argument. De functieaanroep wordt mogelijk door de integer 999 te converteren naar de string "999". De length(...) van deze string is 3.

Zie ook