Sprach-Konstrukte / Get - Set - Pull - Put

Get - Set - Pull - Put

"Get" und "Set" sind zwei zentrale und sehr mächtige Funktionen in JayMo.

Zu beiden existiert mit "Pull" und "Put" eine Lazy-Variante, die bei ungültigen Zugriffen keinen Fehler wirft.

Des weiteren existiert für alle 4 Funktionen eine Kurzform, welche hier beschrieben wird: "Kurzformen von Get,Set,Pull,Put"

Get (Gib)

Mit "get" kann u.a. ein Element aus einer Liste ausgelesen werden.

l = [ 3,7,5,2,8 ]
l.get( 4 ).print

Hier wird eine Liste erstellt, davon das 4. Element abgefragt und ausgegeben. Die Ausgabe ist somit:

2

Für eine Tabelle werden zwei Werte benötigt, um auf Zeile und Spalte zuzugreifen.

t = Table( 2 ).add( 4, 7 ).add( 8, 2 ).add( 3, 5 )
t.get( 2, 1 ).print

Ausgegeben wird der Wert in der zweiten Zeile und der ersten Spalte:

8

Pull (Holen)

Pull ist die "lazy / schlampige" Variante von "get".

l = [ 3,7,5,2,8 ]
l.get( 9 ).print

"get" wird hier einen Fehler werfen, da das Element 9 nicht existert. Pull gibt in diesem Fall "nil" zurückgeben.

l.pull( 9 ).print

Set (Setze)

Mit "set" wird ein bestimmter Wert gesetzt. So wird ein Element in einer Liste ersetzt:

[ 3,7,5,2,8 ].set( 9, 2 ).print

Der Unterschied zu anderen Sprachen wie z.B. Java ist, dass das zu setztende Objekt immer an erster Stelle steht. Dies ist durch die Deep-Funktionalität bedingt.

Es kann auch ein Zeichen in einem String ersetzt werden. Zu beachten ist allerdings, dass hierbei ein neuer String generiert wird:

"abcdefg".set( 'x', 3 ).print

Put (Ablegen)

Put ist, ähnlich zu Pull, die "lazy / schlampige" Variante von "set".

Wird mit Set auf eine ungültige Position zugegriffen, so wird ein Fehler geworfen. Put verlängert ggf. die Liste, so dass das gewünschte Element auf alle Fälle an die gewünschte Stelle gesetzt werden kann.

l = []
l.put( 9, 3 )
l.print

Auch hier wird als erstes das Objekt und dann die Position geschrieben.

In diesem Beispiel wird eine leere Liste erzeugt, durch "put" verlängert und mit "nil" gefüllt, so dass an Position 3 das gewünschte Element gesetzt werden kann.

Die Ausgabe ist dann:

[nil,nil,9]

Mit der Map-Funktion lassen sich alle "nil" durch einen anderen Wert ersetzen:

l = l.map( each.replaceNil( 0 ) )
- Powered by OghsWiki -

 

 

Unterstützen

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

Erhalten:  0 €