Umstieg zu JayMo / JayMo für Java-Entwickler
JayMo für Java-Entwickler
Diese Seite richtet sich speziell an Java-Entwickler.
Hier ein paar wichtige Punkte, die in JayMo anders sind als in Java.
Allgemein
- JayMo-Dateien werden interpretiert, weshalb keine "class"-Dateien existieren.
Änderungen an einer "jmo"-Datei werden somit beim nächsten Ausführen direkt ausgeführt. - Es existieren keine Schlüsselwörter, nur Steuer-Objekte.
Print "foo"
- "if" wird zu "If", "while" zu "While", "for" zu "For", "try" zu "Try", ...
If( true )
Print "Yes, do it!"
.else
Print "No, not really!"
- Die geschweiften Klammern '{}' entfallen, ebenso das Semikolon ';' am Ende einer Zeile.
Count( 10 )
Echo "The current number is: "
Print it
- Klammern "()" können entfallen, wenn nur ein einzelnes Argument übergeben und kein Block angehängt wird.
Print( "Foo" )
Print "Foo"
- Eine main-Funktion ist nicht nötig, da jedes JayMo-Skript direkt im Main-Body des Typs "Root" beginnt.
Vereinfacht gesagt bedeutet dies, dass alle Befehle im Skript von oben nach unten direkt abgearbeitet werden.
Print "abc"
Print "def"
Print "ghi"
Atomare Typen
- Atomare Typen beginnen mit Großbuchstaben: int -> Int
Aus "double" wird "Dec", "String" wird kurz zu "Str", "boolean" zu "Bool".
Str s = "String"
Char c = 'c'
Int i = 123
Dec d = 123.456
Bool b = true
- Auch atomare Objekte sind Objekte und besitzen Funktionen.
123.print
- ".equals" und "==" sind identisch, Strings können auch mit "==" verglichen werden.
"abc" == "abc"
"abc".equals( "abc" )
Variablen / Konstanten
- Variablen beginnen mit einem Kleinbuchstaben, Konstanten werden ohne "final" in Großbuchstaben geschrieben.
myVar1 = 123
MY_CONST = 456
- Für Variablen oder Konstanten kann, aber muss kein Typ definiert werden. Wird kein Typ definiert, so merken sich Variablen/Konstanten den ersten zugewiesenen Typ.
a = "abc"
Str b = "def"
- JayMo verwendet "nil" anstatt von "null". Jedoch wird "null" als Alias akzeptiert. Variablen akzeptieren "nil" nur, wenn bei deren Definition ein "?" angehängt wird.
a? = nil
a? = null
- Die Zuweisung einer Variable oder Konstante muss immer ein "=" enthalten! Aus "a++" wird somit "a=++"
a = 5
Print a
a++
Print a
a=++
Print a
Definitionen
- Klassen werden in JayMo "Typ" genannt und beginnen immer mit einem Großbuchstaben. Definitionen werden mit zwei Doppelpunkten eingeleitet.
::MyType( Str a, Int b, Char c )
- Ein "new" entfällt, der direkte Aufruf eines Typ's erzeugt eine neue Instanz.
MyType( "foo", 3, 'y' )
- Funktionen beginnen immer mit einem Kleinbuchstaben. Der Rückgabetyp steht rechts.
::myFunction( Int i, Dec d, Str s ) Bool
Return i > d + s.length
- Im offenen Parser-Level sind Typ-Vorgaben optional.
::myFunction( i, d, s )
Return i > d + s.length
- Es entfallen "public", "protected", "private".
Generell sind alle Funktionen "public", Variablen und Konstanten sind "private". Private Funktionen beginnen mit einem Unterstrich (z.B. "._init").
::MyType
::publicFunc
Print "Public"
::_privateFunc
Print "Private"
- Powered by
OghsWiki
-