Beispiele:
Auflistung: gültige Deklaration
new i = 1
new j
new k = 'a'
new a[] = [1,4,9,16,25]
new s1[20] = ['a','b']
new s2[] = ''Hello world...''
Auflistung: ungültige Deklaration
new c[3] = 4
new i = "Good-bye"
new q[]
new p[2] = { i + j, k - 3 }
13.5.4.3 Progressive Initialisierung für Arrays
Der Punkte-Operator führt die Initialisierung des Arrays aufgrund der letzten beiden initialisierten Werte
weiter. Der Punkte-Operator (drei Punkte, "...") initialisiert das Array bis zur Arraygrenze.
Beispiel: Auflistung: Arrayinitialisierer
new a[10] = { 1, ... }
new b[10] = { 1, 2, ... }
new c[8]
= { 1, 2, 40, 50, ... }
new d[10] = { 10, 9, ... }
13.5.4.4 Mehrdimensionale Arrays
(Es werden nur Arrays mit bis zu 3 Dimensionen unterstützt)
Mehrdimensionale Arrays sind Arrays, die Referenzen zu weiteren Sub-Arrays enthalten. Zum Beispiel ist
ein zweidimensionales Array ein "Array auf Eindimensionale Arrays".
Beispiele für die Deklaration von zweidimensionalen Arrays:
new a[4][3]
new b[3][2] = [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]
new c[3][3] = [ [ 1 ], [ 2, ...], [ 3, 4, ... ] ]
new d[2]{10} = [ "agreement", "dispute" ]
new e[2][] = [ ''OK'', ''Cancel'' ]
new f[][] = [ ''OK'', ''Cancel'' ]
Wie die beiden letzten Deklarationen (Variablen "e" und "f") zeigen, hat die letzte Dimension eine nicht
spezifizierte Länge. In diesem Fall wird die Länge des Sub-Arrays aus dem dazugehörigen Initialisierer
erkannt. Jedes Sub-Array hat eine unterschiedliche Länge. In diesem speziellen Beispiel enthält "e[1][5]" den
Buchstaben "l" des Wortes "Cancel", aber "e[0][5]" ist ungültig, da das Sub-Array e[0] nur drei Einträge (die
Buchstaben "O", "K", und den Null-Terminator) beinhaltet. Der Unterschied zwischen den Deklarationen der
188
/* j ist 0 */
/* k hat den Zeichencode von 'a' */
/* a hat 5 Elemente */
/* die restlichen 18 Elemente sind 0 */
/* ein unpacked string */
/* Ein Array kann nicht auf einen einzelnen
Wert gesetzt werden */
/* Nur ein Array kann einen String halten. */
/* Unbekannte Größe für ein Array */
/* Arrayinitialisierer müssen Konstanten sein. */
// setzt alle Elemente auf 1
// b = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
// c = 1, 2, 40, 50, 60, 70, 80, 90
// d = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
Rev. 02