Tutorial / Flexible Anzahl an Argumenten

Flexible Anzahl an Argumenten

Die meisten Funktionen benötigen eine feste Anzahl an Argumenten. Mit Vorgabe-Werten ist die Anzahl der Argumente in gewisser Weise auch flexibel, jedoch ist die maximale Anzahl der Argumente damit immer begrenzt. Um wirklich eine flexible Anzahl an Werten übergeben zu können, werden "VarArgs" (variable Argumente) verwendet.

Bei der Definition einer Funktion werden hierzu an die letzte Parameter-Variable 3 Punkte angehängt.

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

Die Variable b enthält nun immer eine beliebig lange Liste mit Integer-Werten.

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

	Print "A: " + a
	Print "B: " + b

this.test( "Foo" )
this.test( "Bar", 3 )
this.test( "Bak", 3, 7, 9 )

Beim ersten Aufruf enthält die Variable 'b' eine leere Liste.

Übergabe einer Liste

Angenommen, es existiert bereits eine Liste mit Zahlen, die an diese Funktion übergeben werden sollen. Die Liste direkt zu übergeben führt jedoch zu einem Fehler führen, da nur Integer-Zahlen und keine Liste akzeptiert wird:

data = [ 9,6,2,7,5,9,4,3 ]
this.test( "Foo", data )

Es soll ja auch nicht die Liste selbst, sondern nur deren Inhalt übergeben werden. Bei diesem Problem hilft ein VarLet, also eine eine Referenz auf die Variable. Dieses wird erstellt, indem bei der Übergabe vor die Variable ein Doppelpunkt geschrieben wird.

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

	Print "A: " + a
	Print "B: " + b

data = [ 9,6,2,7,5,9,4,3 ]
this.test( "Foo", :data )
- Powered by OghsWiki -

 

 

Unterstützen

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

Erhalten:  0 €