In die Tiefe
"get" und "set" sind in JayMo sehr mächtige Funktionen. Mit diesen kann durch einen Baum manövriert werden und es lassen sich Nodes direkt ansprechen:
t.get( "Foo", "Bak", "Bak2").add("Another")
Eckige Klammern
Mit eckigen Klammern lassen sich "get" und "set" abkürzen, was auch folgendes ermöglicht:
t[ "Foo", "Bak" ].add( "Xyz" )
t[ "Foo", "Bak", "Xyz" ].value = 3
Pull / Put
"pull" ist die "lazy" Variante von "set" und "put" die "lazy" Variante von "get".
Während "get" oder "set" einen Fehler werfen, wenn eine Node nicht existiert, so wird bei "pull" oder "put" der entsprechende Zweig ggf. automatisch angelegt.
t.pull( "Abc" ).print
t.pull( "Abc" ).print
In der ersten Zeile wird die Node angelegt und ausgegeben, in der zweiten Zeile wird die bestehende Node abgerufen und ausgegeben.
Wird an die eckigen Klammern ein Fragezeichen angehängt, so wird der Aufruf als "lazy" interpretiert (pull/put).
So lässt sich auch sehr schnell ein Baum aufbauen:
tree = Tree
tree[ "org", "jmo_lang", "www" ]? = "Home of JayMo"
tree.show