Default waarde en error waarde

Default waarde

In een functieaanroep kan een default waarde gespecificeerd worden.

  • Als het resultaat van de functieevaluatie niet nil is dan is dat resultaat het functieresultaat, en wordt de default waarde niet gebruikt.
  • Als het resultaat van de functieevaluatie nil is dan wordt de default waarde als functieresultaat gebruikt.

De Zie ook lijst onderaan deze pagina verwijst naar een uitleg van de nil. Voorbeelden:

Voorbeeld Resultaat Type Toelichting
round(nil, default: 0.0) 0.0 Double Functie round(...) verwacht een numeriek argument, maar het argument is nil. Daardoor is de functieevaluatie nil. Een default waarde 0.0 is gespecificeerd. Daardoor is niet de nil maar de 0.0 het functieresultaat.
abs(if 3 > 4 then 5 end, default: 1000) 1000 Integer Als een deelexpressie nil oplevert dan kan de nil propageren. Het is dan niet zonder meer zichtbaar dat de expressie nil op kan leveren. In het voorbeeld is de nil niet genoemd maar treedt die wel op. Door middel van de default waarde wordt verder propageren van de nil gestopt en is het resultaat 1000.

De default waarde kan bijvoorbeeld voor een binaire expressie gespecificeerd worden door middel van de tovalue(...) functie.

Voorbeeld Resultaat Type Toelichting
tovalue(3 + nil, default: 6) 6 Integer De binaire expressie 3 + nil levert nil op. De tovalue(...) functie geeft het functieargument terug als functieresultaat. Doordat het een functie is is er de standaard mogelijkheid een default waarde te specificeren; in dit geval 6.
isnil(tovalue(3 + nil)) true Boolean De tovalue(...) functie voert verder geen evaluatie uit. De tovalue(...) zonder de default waarde uit dit voorbeeld heeft geen meerwaarde. In het voorbeeld levert de 3 + nil als resultaat nil, wat met de functie isnil(...) aangetoond wordt.

Error waarde

In een functieaanroep kan een error  waarde gespecificeerd worden, naar voorbeeld van de default waarde.

  • Als het uitvoeren van de functie goed gaat dan is het resultaat het functieresultaat, en wordt de error waarde niet gebruikt.
  • Als er een fout optreedt tijdens het uitvoeren van de functie dan wordt de error waarde als functieresultaat gebruikt.
  • Als er een fout optreedt en er is geen error waarde dan wordt de evaluatie afgebroken en komt een foutmelding bij de eindgebruiker terecht.

Voorbeelden:

Voorbeeld Resultaat Type Toelichting
indexof("Abc", "c", 1 / 0, error: "Huh?") "Huh?" String Het derde argument specificeert de index vanaf waar de functie moet zoeken. De index is een deling door 0 en levert een fout op. De fout komt niet bij de eindgebruiker terecht. In plaats daarvan is "Huh?" het resultaat van de functie.
indexof("Abc", nil, 1 / 1, error: "Huh?", default: 2000) 2000 Integer De error waarde en de default waarde kunnen gecombineerd worden. In het voorbeeld is de deling door 0 opgelost maar is de string waarnaar de functie moet zoeken nil. De evaluatie is nil en het functieresultaat is de default waarde 2000.

Zie ook