Kurzformen von Get,Set,Pull,Put
Übersicht
Funktion | Kurzform |
---|---|
|
|
|
|
|
|
|
|
Get
Eine Get-Abfrage kann mit eckigen Klammern abgekürzt werden.
l = [ 3,7,5,2,8 ]
l[4].print
Hier wird das 4. Element der Liste ausgegeben.
t = Table( 2 ).add( 4, 7 ).add( 8, 2 ).add( 3, 5 )
t[2,1].print
In diesem Beispiel wird von der definierten Tabelle das Objekt in Zeile 2 und Spalte 1 ausgegeben.
Da Strings wie eine Liste aufgebaut sind, lässt sich mit "get" ein einzelnes Zeichen abfragen:
"abcdefg"[3].print
Ebenso können die eckigen Klammern für eigene Get-Funktionen benutzt werden:
::get( Int a, Int b ) = a + b
this.get( 2, 5 ).print
this[2,5].print
Benötigt die selbst definierte Funktion keinerlei Argumente, so kann mit "[]" direkt auf "get" zugegriffen werden:
::get = "abc"
this[].print
Pull
Die Kurzform von Pull sind ebenso die eckigen Klammern, allerdings wird noch ein Fragezeichen als Modifier angehängt:
l = [ 3,7,5,2,8 ]
l[9]?.print
".get" würde hier einen Fehler werfen, da die Liste nur 5 und keine 9 Elemente beinhaltet. ".pull" hingegen gibt lediglich "nil" zurück.
Set
Wie bei "Get" kann auch "Set" mit eckigen Klammern verwendet werden. Hierzu wird noch ein "=" angehängt:
l = [ 3,7,5,2,8 ]
l[2] = 9
l.print
Dies kann auch für eigene Funktionen genutzt werden:
::set( obj, pos )
Print "Let's set " + obj.toExplain + " to position " + pos
this.set( 'a', 5 )
this[5] = 'a'
Ebenso ist folgendes möglich:
::set( obj )
Print "Set " + obj
this.set( 'a' )
this[] = 'a'
Put
Wie bei "Pull" wird für "Put" an die eckigen Klammern ein Fragezeichen angehängt:
l = []
l[3]? = 9
l.print
Hier soll die Zahl 9 an die Position 3 der Liste gesetzt werden. Da die Liste keine Einträge hat, wird die Liste automatisch verlängert. Leere Positionen werden mit "nil" gefüllt.