Dim <varname>[<dim1-size>] ([<dim2-size>], ...), ... DimStr <varname>[<dim1-size>] ([<dim2-size>], ...), ... |
Die Dim-
und DimStr
-Anweisungen können verwendet werden,
um eine n-dimensionale Tabelle mit den angegebenen Größen
zu erstellen und alle Elemente auf 0 ( Dim
) oder "" ( DimStr
)
zu initialisieren.
Wie Sie bereits aus der Dokumentation über Tabellen wissen,
müssen Tabellenfelder initialisiert werden, bevor sie verwendet
werden können. Selbst wenn ein Feld nur eine Null oder eine leere
Zeichenfolge tragen soll, müssen Sie es mit diesem Wert initialisieren,
bevor Sie darauf zugreifen können. Die Dim
-Anweisung kann Ihnen
dabei helfen. Sie wird die Tabelle varname
in der angegebenen
Größe size
erstellen. Der Parameter size
muss ein konstanter
Wert sein, also keine Variable. Bitte beachten Sie, dass size
die wirkliche Größe der Tabelle angibt und nicht das letzte Element,
das initialisiert werden soll. Wenn Sie also 50 als size
verwenden,
wird Hollywood Tabellenfelder von 0 bis 49 initialisieren.
Hier ein Beispiel:
Dim mytable[100] |
Diese Deklaration würde als For-Anweisung so aussehen:
Local mytable = {} For k = 0 To 99 Do mytable[k] = 0 |
Die Dim
-Anweisung ist wirklich praktisch, wenn Sie mehrdimensionale
Tabellen erstellen möchten. Sie können so viele der eckigen
Klammern nach der varname
Dekleration verwenden, wie Sie
möchten. Jede neue eckige Klammer wird eine neue Tabellendimension
in der angegebenen Größe erstellen. Beispielsweise:
Dim vector[10][10][10] |
Die obige Deklaration erzeugt eine dreidimensionale Vektortabelle und initialisiert alle Elemente mit Nullen. Diese Deklaration als For-Anweisung übersetzt, sieht ziemlich viel komplexer aus:
Local vector = {} For i = 0 To 9 vector[i] = {} For j = 0 To 9 vector[i][j] = {} For k = 0 To 9 vector[i][j][k] = 0 Next Next Next |
Sie können auch mehr als eine Tabelle mit dieser Anweisung erstellen und initialisieren. Verwenden Sie einfach ein Komma nach der letzten Dimensionsdekleration und Sie können den ganzen Vorgang so oft wiederholen, wie Sie wollen. Beispiel:
Dim table1[50], table2[50], table3[50] |
Die DimStr
-Anweisung funktioniert auf die gleiche Weise wie Dim
,
aber initialisiert alle Felder mit leeren Zeichenfolgen ("").
Bitte beachten Sie, dass Dim/DimStr
immer lokale Tabellen
erstellen, wenn Sie sich nicht im Hauptblock des Skripts befinden.
Wenn Sie eine globale Tabelle wollen, sollten Sie die Dim/DimStr-Anweisung
im Hauptblock des Skripts benutzen.
Denken Sie auch daran, dass Dim/DimStr
die Tabelle nicht auf
die angegebene Größe beschränkt. Die Tabelle kann immer noch
wachsen, weil Hollywood eine dynamisch typisierte Sprache ist!
Um eine Tabelle zu vergrößern, initialisieren Sie einfach die
Felder, die Sie brauchen. Hollywood wird sie dann automatisch
wachsen lassen. Beispielsweise:
Dim table[50] ... For k = 50 To 59 Do table[k] = 0 ; Tabelle wächst um 10 Felder |
Der obige Code erstellt eine Tabelle mit 50 Feldern und wächst anschließend auf 60. Wenn Sie eine Tabelle verkleinern möchten, weisen Sie den entsprechenden Feldern Nil zu. Zum Beispiel:
Dim table[50] ... For k = 40 To 49 Do table[k] = Nil ; Tabelle schrumpft um 10 Felder |
Der obige Code schrumpft die Tabelle von 50 initialisierten Feldern auf 40. Hollywood ist eine dynamisch typisierte Sprache, in der Tabellen keine feste Größe haben. Sie lassen die Tabelle einfach wachsen und schrumpfen, wie Sie sie gerade brauchen.