Tabelle
Das "Table"-Objekt bietet eine Tabellen-Datenstruktur.
Wichtig
Eine Tabelle ist nach Zeilen/Spalten aufgebaut, was Y/X entspricht.
Erzeugen
Beim Erzeugen muss die gewünschten Breite der Tabelle übergeben werden.
Anschließend können werte hinzugefügt werden.
t = Table( 2 )
t.add( 4, 3 )
t.add( 2, 5 )
t.print
Es ist auch möglich eine Tabelle zu erzeugen, die bereits eine bestimmte Länge besitzt.
Das dritte Argument legt hierbei fest, mit welchem Wert die Felder initialisiert werden sollen.
t = Table( 2, 5, nil )
t.print
Eine weitere sehr schöne Methode ist ein Table-Block:
t = ||||
4,3
2,5
||||
Print t
Hinzufügen / Ändern
Mit ".add" lässt sich eine Zeile zur Tabelle hinzufügen. Die Anzahl der benötigten Argumente muss dabei mit der Tabellenbreite übereinstimmen:
t.add( 4, 3 )
Der Inhalt eines Feldes kann mit der Funktion ".set" geändert werden. Die Arguments sind hierbei (Objekt, Y, X), also (NeuerWert, Zeile, Spalte):
t.set( "Foo" ,2 ,1 )
Dieser Befehl unterscheidet sich von anderen Programmiersprachen. Durch die Anordnung der Argumente eröffnen sich aber viele Möglichkeiten. Siehe dazu "Schneller Zugriff auf Tabelle", "Kurzformen von Get,Set,Pull,Put" und "Deep Get / Set".
Abfragen
Mit ".get" wird eine Zeile oder ein Feld abgefragt:
t.get(2, 1)
Dies gibt den Inhalt des Feldes von Zeile 2, Spalte 1 zurück.
Eine Zeile oder Spalte lässt sich auch als Liste auslesen:
t.row( 2 )
t.column( 2 )
Info
Zeilen und Spalten werden als Kopie übergeben. Eine Änderung dieser Liste beeinflusst nicht die Tabelle selbst.
Spalten-Titel
Wird eine Tabelle z.B. mit Print ausgegeben, so können Spaltenüberschriften die Lesbarkeit verbessern. Diese werden mit der Funktion ".setTitles" und einer variablen Anzahl an Argumenten gesetzt.
tab = Table(2)
tab.setTitles( "Foo", "Bar" )
tab.add( 5, 2 )
tab.add( 4, 3 )
tab.print
Abrufen lassen sich die Überschriften mit ".getTitles":
Sind die Spalten-Titel gesetzt, so kann eine einzelne Zeile direkt in eine Map umgewandelt werden:
tab.rowMap( 2 )
Initialisieren
Um eine Tabelle mit gleich in der gewünschten Größe zu erzeugen, werden beim Erzeugen 3 Argumente (Breite, Höhe, Füllzeichen) übergeben.
Table( 8, 4, 'a' )
Dies erzeugt eine Tabelle im Format 8 x 4, wobei jedes Feld mit einem 'a' gefüllt ist.
Die Funktion ".init" bietet die Möglichkeit, nachträglich mehrere Zeilen anzuhängen.
Um z.B. 6 leere Zeilen am Ende anzuhängen:
tab.init( 6, nil )
Ebenso lassen sich mehrere Zeilen anhängen:
x = Table(3)
x.init( 2, 'a' )
x.init( 2, 'b' )
x.init( 2, 'c' )
x.init( 2, 'd' )
x.describe