Funktionen / Werte an eine Funktion

Werte an eine Funktion

Sollen Werte an eine Funktion übergeben werden, so muss die Funktions-Definition erweitert werden.

Als Beispiel sollen 2 Objekte an eine Funktion übergeben werden:

::test( a, b )

Die Parameter werden in Klammern definiert. Hier werden die Variablen festgelegt, mit denen die Werte dann abrufbar sind. Mehrere Variablen werden mit einem Komma getrennt.

Wichtig:
Der Variable-Name eines Funktions-Parameters muss eindeutig sein und darf nicht bereits im umgebenden Typ verwendet werden! Dies ist Absicht und soll zu klarerem Code führen.

Typ-Prüfung

Wird kein Typ angegeben, kann jedes beliebige Objekt übergeben werden. Ebenso könnte als Vorgabe-Typ "Object" angegeben werden:

::test( Object a, Object b )

Es lässt sich auch konkret festlegen, welcher Typ übergeben werden darf:

::test( Str a, Int b )

Übergabe

Um Argumente (Werte) an eine Funktion zu übergeben, werden diese in Klammern an den Funktions-Namen angehängt. Mehrere Argumente werden mit Komma getrennt:

this.test( "foo", 3 )

Nil

Variablen dürfen in JayMo generell nicht "nil" sein. Außer es wird dies speziell erlaubt, indem ein Fragezeichen an den Variable-Namen angehängt wird. Dies gilt ebenso für Parameter.

Soll also beim vorherigen Beispiel ebenso "nil" übergeben werden dürfen, würde dies so aussehen:

::test( Str a?, Int b? )

Im Funktions-Block werden die Variablen dann genau so als "a?" bzw. "b?", wie gewohnt, verwendet.

Ob die Variable "nil" ist, kann z.B. mit der Objekt-Funktion ".isNil" geprüft werden:

b?.isNil.print

Oder "nil" wird ggf. direkt durch einen vordefinierten Wert ersetzt:

bb = b?.replaceNil( 0 )

In diesem Fall enthält "bb" den Wert von "b?", bzw. im Falle von "nil" eine 0.

Standard-Werte

Auch ist es in JayMo möglich, für Parameter einen Standard-Wert zu definieren. In diesem Fall dürfen auch weniger Argumente an die Funktion übergeben werden.

Für einen Standard-Wert wird an den Variable-Namen ein "=" mit dem gewünschten Wert angehängt:

::test( Str a = "abc", Int b = 1 )

Werden nun weniger Werte an die Funktion übergeben, so wird für die nachfolgenden Variablen der Vorgabe-Wert verwendet:

this.test("xyz", 9)   # a = "xyz", b = 9
this.test("xyz")      # a = "xyz", b = 1
this.test()           # a = "abc", b = 1
this.test             # a = "abc", b = 1

Notiz:
Standard-Wert können sehr flexibel definiert werden. So dürfen danach und davor beliebig Werte ohne Standard-Wert stehen.

- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €