Computerwissenschaften

Deklarieren und Initialisieren von konstanten Arrays in Delphi

In Delphi, der vielseitigen Webprogrammiersprache,  ermöglichen Arrays einem Entwickler, auf eine Reihe von Variablen mit demselben Namen zu verweisen und eine Zahl – einen Index – zu verwenden, um sie voneinander zu unterscheiden.

In den meisten Szenarien deklarieren Sie ein Array als Variable, sodass Array-Elemente zur Laufzeit geändert werden können.

Manchmal müssen Sie jedoch ein konstantes Array deklarieren – ein schreibgeschütztes Array. Sie können den Wert einer Konstanten oder einer schreibgeschützten Variablen nicht ändern. Während Sie ein konstantes Array deklarieren , müssen Sie es daher auch initialisieren.

 

Beispieldeklaration von drei konstanten Arrays

In diesem Codebeispiel werden drei konstante Arrays mit den Namen Days , CursorMode und Items deklariert und initialisiert .

  • Days ist ein String-Array aus sechs Elementen. Days [1] gibt die Mon-Zeichenfolge zurück.
  • CursorMode ist ein  Array aus zwei Elementen. wobei die Deklaration CursorMode [false]=crHourGlass und CursorMode=crSQLWait. „cr *“ – Konstanten können verwendet werden, um den aktuellen Bildschirmcursor zu ändern.
  • Items definiert ein Array von drei TShopItem-  Datensätzen .
Typ 
TShopItem=Datensatzname 
  : Zeichenfolge; 
  Preis: Währung; 
Ende; 
 
const 
Days: Array [0..6] von string=
( 
  'So', 'Mo', 'Di', 'Mi', 
  'Do', 'Fr', 'Sa' 
); 
 
CursorMode: Array [Boolescher Wert] von TCursor=
( 
  crHourGlass, crSQLWait 
); 
 
Items: Array [1..3] von TShopItem=
( 
  (Name: 'Clock'; Preis: 20,99), 
  (Name: 'Pencil'; Preis: 15,75), 
  (Name: 'Board'; Preis: 42,96) 
);

Beim Versuch, einem Element in einem konstanten Array einen Wert zuzuweisen, wird der Kompilierungszeitfehler „Linke Seite kann nicht zugewiesen werden“ ausgelöst. Der folgende Code wird beispielsweise nicht erfolgreich ausgeführt:


Items [1] .Name:='Watch'; // wird nicht kompiliert

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.