Arrays
Arrays sind verkettete Datentypen gleichen Typs. In Luna können numerische Variablen, Stringvariablen und Strukturen als statisches, eindimensionales Array dimensioniert werden. Statisch bedeutet, dass die Anzahl der Elemente fest vorgegeben wird. Werden mehrere verschiedene Daten je Arrayelement benötigt, kann man Arrays mit Strukturen erstellen.
Um ein Array zu dimensionieren, fügt man bei der Dimensionierung von Variablen eine in Klammern eingefasste Elementanzahl ein. Die Elementanzahl und auch der Zugriff auf einzelne Elemente eines Arrays sind nullbasiert. Das erste Element eines Arrays ist also das Element „0“.
Elementanzahl als Eigenschaft
Bei Arrays kann mittels der Eigenschaft Ubound die dimensionierte Elementanzahl gelesen werden:
dim i,a(63) as byte for i=0 to a().Ubound [..] next
Initialisierung
Arrayelemente im Arbeitsspeicher werden nach der Deklaration und Dimensionierung (wie alle anderen Variablen im Arbeitsspeicher) mit dem Wert 0, nil oder leer initialisiert. Arrays/Variablen im Eeeprom werden nicht initialisiert.
Beispiel Dimensionierung Arbeitsspeicher
dim a(99) as byte ' Byte-Array mit 100 Elementen dimensionieren dim s(2) as string ' String-Array mit 3 Elementen dimensionieren a(22) = 42 ' Dem 23. Element den Wert 42 zuweisen Print Str(a(22)) ' Wert des Elements ausgeben s(0) = "Hallo Welt" ' Dem 1. Element einen Text zuweisen Print s(0) ' Wert des Elements ausgeben
Beispiel Dimensionierung Eeprom
eedim a(99) as byte ' Byte-Array mit 100 Elementen dimensionieren eedim s[10](2) as string ' String-Array mit 3 Elementen und je 10 Bytes Länge dimensionieren. ' (Strings im Eeprom sind statisch und benötigen eine Längenangabe) a(22) = 42 ' Dem 23. Element den Wert 42 zuweisen Print Str(a(22)) ' Wert des Elements ausgeben s(0) = "Hallo Welt" ' Dem 1. Element einen Text zuweisen Print s(0) ' Wert des Elements ausgeben