Funktion mit Parametern
Um Werte an eine Funktion zu übergeben, müssen dafür die Details bei der Definition festgelegt werden.
Definition
Zum Beispiel sollen 2 Objekte an eine Funktion übergeben werden:
::test( a, b )
Print "A: " + a
Print "B: " + b
Parameter werden in Klammern definiert und mit Komma getrennt. Hier werden die Variablen festgelegt, unter denen die Werte nachher abrufbar sind.
Wichtig
Der Variable-Name eines Funktions-Parameters darf nicht bereits im umgebenden Typ verwendet werden!
Der Aufruf erfolgt wieder mit "this", wobei nun die zu übergebenden Werte innerhalb von Klammern angehängt werden:
::test( a, b )
Print "A: " + a
Print "B: " + b
this.test( 3, 7 )
this.test( 22, 44 )
this.test( 'x', 'y' )
Typ-Prüfung
Wird kein Typ angegeben, kann jedes beliebige Objekt übergeben werden. Dies entspricht dem Vorgabe-Typ "Object":
::test( Object a, Object b )
Es ist sinnvoll den gewünschten Typ vorzugeben, um unerwünschte Ergebnisse zu vermeiden.:
::test( Str a, Int b )
So darf an die Funktion nur noch ein String und ein Integer-Wert übergeben werden. Alles andere würde zu einem Fehler führen.
::test( Str a, Int b )
Print "A: " + a
Print "B: " + b
this.test( "Foo", 3 )
this.test( "Bar", 7 )
this.test( "Bak", 9 )
Nil
Soll auch "nil" übergeben werden dürfen, so muss an die Variablen ein Fragezeichen angehängt werden:
::test( Str a, Int b? )
Print "A: " + a
Print "B: " + b?.replaceNil( 0 )
this.test( "Foo", 3 )
this.test( "Bar", nil )
this.test( "Bak", 9 )
Mit ".replaceNil" wird ggf. ein Standardwert verwendet. In diesem Beispiel wird somit nicht "nil" sondern "0" ausgegeben.