11.11 Dim- und DimStr-Anweisung

 
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.


Navigation zeigen