Sprach-Konstrukte / Objekt-Funktionen

Objekt-Funktionen

Jedes JayMo-Objekt erbt vom Basis-Typ "Object" und bietet damit bereits eine Vielzahl von Funktionen. Hier werden einige wichtige beschrieben.

toStr

Mit ".toStr" kann jedes beliebige Objekt in einen String umgewandelt werden.

nil.toStr.print
5.toStr.print

print / echo

Um ein Objekt über die Standard-Ausgabe (Konsole) auszugeben, existieren in JayMo zwei Funktionen.

  • ".print" gibt das Objekt aus, gefolgt von einem Zeilenumbruch.
  • ".echo" gibt ebenso das Objekt aus, allerdings ohne gefolgtem Zeilenumbruch.
3.echo.echo.print

compare

Mit Compare werden zwei Objekte miteinander verglichen. Ist das aktuelle Objekt kleiner wird -1, ist es größer wird 1, und bei Gleichheit wird 0 zurückgegeben.

123.compare( 321 ).print

pass

Mit ".pass" wird das aktuelle Objekt an einen nachfolgenden Block und dessen Stream übergeben.

5.add(3).pass
	it.echo
.print

replaceNil

Dies ist eine sehr praktische Funktion. Falls das aktuelle Objekt "nil" ist, wird es hiermit durch das übergebene Objekt ersetzt.

a? = nil
a?.replaceNil( 0 ).print

Das Ergebnis ist somit "0".

which

Mit dieser Funktion können teils längere if-else-Ketten ersetzt werden.

"which" werden mehrere Prüfungen übergeben. Als Ergebnis wird zurückgegeben, welche Prüfung als erstes "true" zurück gab. Trifft keine der Prüfungen zu, kommt "nil" zurück.

item = 'R'
item.which( cur <= 'C', cur == 'E', cur > 'T', cur < 'T', true ).print

In diesem Fall ist das Ergebnis 3, da 'R' größer ist als 'T'.
Die Übergabe von "true" als letzte "Prüfung" führt dazu dass, sollte nichts zutreffen, das Ergebnis 5 und nicht "nil" ist.

isNil, isNotNil

Diese Funktionen prüfen, ob das aktuelle Objekt "nil" oder nicht "nil" ist. Das Ergebnis wird als Bool-Wert zurückgegeben.

nil.isNil.print      # true
'a'.isNil.print      # false
nil.isNotNil.print   # false
'a'.isNotNil.print   # true

ifNil, ifNotNil

Wenn das aktuelle Objekt "nil" (bzw. nicht "nil") ist, wird der zugehörige Block inkl. Stream ausgeführt. Andernfalls wird die Verarbeitung abgebrochen.

nil.ifNil
	"Yes, the object is nil".print
'x'.ifNil
	"This string will be ignored".print
'x'.ifNotNil
	"The current object is not nil".print

Dies kann ebenso in einer Zeile verwendet werden:

nil.ifNil.print( "Das aktuelle Objekt ist Nil!" )

nilUse

"use" steht in JayMo für eine Bedingung, bei der entweder das eine, oder das andere, Objekt verwendet wird.

Ist das aktuelle Objekt "nil", so wird bei dieser Funktion das erste Argument, ansonsten das Zweite zurückgegeben.

nil.nilUse( 'a', 'b' ).print

typeUse

Ähnlich verhält es sich bei "typeUse". Hier werden 3 Argumente übergeben. Entspricht der Typ des aktuellen Objekt's dem angegebenen Typ, so wird das Erste, ansonsten das Zweite Objekt zurückgegeben.

"abc".typeUse( "Str", 'a', 'b' ).print
- Powered by OghsWiki -

 

 

Unterstützen

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

Erhalten:  0 €