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 -

 

 

Unterstützen

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

Erhalten:  0 €