prevnext   » Startseite » Haupt-Referenz » Typen und Wertebereiche » MAP: Map

MAP: Map

1.   Einleitung

Mit dem Datentyp MAP können Daten in AVL-Bäumen gespeichert werden. Die einzelnen Werte werden über einen textuellen Schlüsseln angesprochen, der in eckigen Klammern '[]' steht. Die Schlüssel sind Null-Terminiert und Groß-/Kleinschreibung ist relevant.
Beispiel: var['x1'] = x["B"] + y[list_index]["x2"].

Wie in dem Beispiel gezeigt, kann ein Map-Element eine LISTE oder MAP enthalten.

Die Indexverwaltung ist robust. Um ein Element abzufragen, kann ein beliebiger Textschlüssel angegeben werden. Existiert das Element mit diesem Schlüssel, dann wird es als Ergebnis geliefert; anderfalls wird '@NONE' geliefert.

Wir als Index ein numerischer Wert verwendet, dann wird auf das Element mit dem virtuellen Index im Baum gesucht. Negativen werden relativ zum letzen Element interpretiert. Die Suche erfolgt iterativ mit erheblichem Aufwand. Zur Optimierung wird sich der letzte Fundort gemerkt, so dass bei einer unveränderten Map die Suche am letzten Index fortgesetzt werden kann. Alternativ kann der Zugriff auch mittels einer durch m$keys() erzeugten Schlüsselliste erfolgen.

Bei einer Zuweisung wird die Map automatisch erweitert, wenn das Element nicht schon existiert. Kontrolliertes Einfügen ist mittels der Funktionen m$insert(), m$replace() und m$store() möglich.


2.   Konstanten

Durch '@MAP' oder kurz '@M' (Groß-/Kleinschreibung unerheblich) kann eine konstante Map angegeben werden. Die Elemente werden in eckigen Klammern '[]' eingeschlossen. Die einzelnen Werte werden durch Kommata getrennt und haben das Format: "key_string"=wert bzw. 'key_string'=wert. Solange der Schlüssel nur aus Buchstaben, Ziffern, '$' und '.' besteht, können die Anführungszeichen weggelassen werden.

Wichtig: Mittels '@MAP' wird eine Konstante definiert, die ihrerseits auch nur Konstanten enthalten darf.

Beispiele:

Konstante Beschreibung
@MAP Leere Map.
@M Kurzform für 'Leere Map'.
@MAP[] Leere Map.
@MAP['name'=1] Map mit einem Element namens 'name'.
@MAP["name"=1] Map mit einem Element namens 'name'.
@MAP[name=1] Map mit einem Element namens 'name'.
@MAP['na me'=1] Map mit einem Element namens 'na me'.
@MAP[a=1,b=2.2] Map mit zwei Elementen.
@MAP[ a=@LIST[1,2], b=@MAP[a=1] ] Map, die eine Liste und eine Map enthält.

Siehe auch:
 Typen und Wertebereiche   LIST: Liste   map()