Functieaanroep, functie overloads

Functieaanroep

Bij een functieaanroep wordt afhankelijk van de functie een aantal argumenten meegegeven. Het is mogelijk argumenten op positie door te geven, en/of op naam.

Voorbeeld Resultaat Type Toelichting
now() 2017-06-28 16:45:59 Date time De now(...) functie heeft geen argumenten.
repeat("ab", 3) "ababab" String Het argument op positie 1 is de te herhalen string. Het argument op positie 2 is het aantal te herhalen keren.
repeat(3, "ab") - - Fout. Er is geen functie repeat(...) met een integer op positie 1 en een string op positie 2.
repeat(count: 3, value: "ab") "ababab" String De argumenten zijn benoemd. De positie van de argumenten maakt dan niet uit. Raadpleeg de functiedocumentatie voor de namen van de argumenten.
repeat("ab", count: 2) "abab" String Gemengde aanpak. De string staat op positie 1. Het aantal herhalingen is benoemd.
repeat(value: "ab", 2) - - Fout. De aanroep bevat een positioneel argument ná een benoemd argument. De aanroep moet bestaan uit een aantal positionele argumenten gevolgd door een aantal benoemde argumenten.
repeat(error: "FOUT", "ab", default: "X", 3) "ababab" String

De default specificatie en error specificatie zijn speciale constructies. De syntax is die van een benoemd argument. Smartforms verwerkt en verwijdert deze constructies eerst, en kijkt daarna naar de posities en namen van de overblijvende argumenten. De speciale constructies leveren daarom geen verstoring op van de positionele- en benoemde argumenten.

De Zie ook lijst onderaan deze pagina verwijst naar een uitleg over de default- en error constructie.

max(1, 3, 2, 7, 4) 7 Integer Functie max(...) accepteert 0 or meer argumenten en geeft de maximum waarde terug. In de functiedocumentatie staat bijvoorbeeld max(value, value...) om dit aan te geven.

Functie overloads

Een set van functie overloads is een set van functies met dezelfde naam maar een verschillende argumentenlijst. Afhankelijk van het aantal argumenten en/of de types van de argumenten wordt de juiste functie aangeroepen.

Voorbeeld Resultaat Type Toelichting
equals("abc", "ABC") true Boolean De overload van de functie equals(...) met twee argumenten vergelijkt de strings zonder onderscheid te maken tussen hoofd- en kleine letters.
equals("abc", "ABC", true) false Boolean De overload van de functie equals(...) met drie argumenten accepteert een derde argument dat aangeeft of het onderscheid tussen hoofd- en kleine letters wel of niet gemaakt moet worden.

Bovenstaande functie equals(...) is een voorbeeld van een functie waarvan de overloads vergelijkbaar gedrag vertonen. Onderstaande functie isnil(...) is een voorbeeld van twee overloads met verschillend gedrag bij dezelfde functienaam.

Voorbeeld Resultaat Type Toelichting
isnil(123) false Boolean De overload isnil(...) met één argument test of het argument nil is.
isnil(nil) true Boolean Idem.
isnil(123, 2000) 123 Integer De overload isnil(...) met twee argumenten geeft het eerste argument terug, tenzij dat nil is: in dat geval geeft de functie het tweede argument terug.
isnil(nil, 2000) 2000 Integer Idem.

Zie ook