v = RawGet(t, key)
key
aus der
angegebenen Tabelle t
und gibt ihn zurück. Grundsätzlich
ist dieser Befehl das Selbe wie folgender Ausdruck:
v = t[key] |
Der Unterschied besteht darin, dass RawGet()
nie die Metamethoden
aufrufen und somit nicht fehlschlagen wird, wenn der angegebene
Index nicht existiert. Somit ist es nützlich, um zu überprüfen, ob
ein bestimmter Tabellenindex vorhanden ist oder zum Lesen von
Werten aus der Tabelle ohne die Metamethoden aufzurufen.
Siehe Metamethoden für Details.
Bitte beachten Sie, dass Zeichenketten-Indizes in der Regel in Kleinbuchstaben geschrieben sind, außer wenn Sie den Tabellenindex mit Klammern initialisieren. Betrachten Sie den folgenden Code:
t1 = {TEST = 1} DebugPrint(RawGet(t1, "TEST"), RawGet(t1, "test")) ; prints Nil/1 t2 = {} t2.TEST = 1 DebugPrint(RawGet(t2, "TEST"), RawGet(t2, "test")) ; prints Nil/1 t3 = {} t3["TEST"] = 1 DebugPrint(RawGet(t3, "TEST"), RawGet(t3, "test")) ; prints 1/Nil |
Wie Sie sehen, wird beim Initialisieren des TEST-Elements
mit geschweiften
Klammern oder dem Punktoperator der Zeichenketten-Index TEST
automatisch in
Kleinbuchstaben umgewandelt. Bei Verwendung von Klammern zur Initialisierung
des TEST-Elements
findet keine Konvertierung statt. Dies hat zur Folge, dass
Sie nicht auf nicht-kleingeschriebene Zeichenketten-Indizes zugreifen können,
die mit dem Punktoperator der Klammer-Syntax initialisiert wurden, da der
Punktoperator den Index immer in Kleinbuchstaben umsetzt.
Ab Hollywood 6.0 können Sie auch den Komfortbefehl HaveItem() nutzen, um zu überprüfen, ob ein Tabellenelement existiert. Siehe HaveItem für Details.
t = {x = 10, y = 20} NPrint(RawGet(t, "x")) NPrint(RawGet(t, "y")) NPrint(RawGet(t, "z"))Der obige Code gibt 10 / 20 / Nil aus.