Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   TArray<string> als const im Record deklarieren (https://www.delphipraxis.net/202760-tarray-string-als-const-im-record-deklarieren.html)

Dennis07 8. Dez 2019 19:51

AW: TArray<string> als const im Record deklarieren
 
Zitat:

Zitat von himitsu (Beitrag 1452982)
Zitat:

Was ist der Vorteil?
Nein, du musst immer die untere und obere Grenze angeben.
Auch bei
Delphi-Quellcode:
array[TIrgendeinEnum] of ...
ist der untere Bereich gegeben, denn der Enum ist nunmal so definiert, dass er bei 0 beginnt.

Wieso denn Nein, wenn du danach überhaupt nicht widersprichst? :-D
Ein Enum ist, genau wie ein ganzzahliger Typ, ein Wertebereich. Und den kannst du entweder vollständig, oder aber teilweise als Schlüssel für ein statisches Array benutzen. Nichts anderes hatte ich versucht zu erklären. Wenn es missverständlich war, bitte ich dies zu entschuldigen.

himitsu 8. Dez 2019 22:08

AW: TArray<string> als const im Record deklarieren
 
Entweder du gibst beide Grenzen rein (
Delphi-Quellcode:
array[b..e] of xyz
),
oder einen Typen, der in sich beide Grenzen enthält (
Delphi-Quellcode:
array[EnumOrOtherOrdinalType] of xyz
),
also im Endefekt gibst du somit immer beide Grenzen rein. :zwinker:

Sowas wie im C++ und anderen Sprachen geht im Delphi nicht, also nur die Anzahl und implizit beginnt es bei 0:
Delphi-Quellcode:
array[13] of xyz
für
Delphi-Quellcode:
array[0..Anzahl-1] of xyz

DieDolly 9. Dez 2019 09:17

AW: TArray<string> als const im Record deklarieren
 
Zitat:

Sowas wie im C++ und anderen Sprachen geht im Delphi nicht, also nur die Anzahl und implizit beginnt es bei 0: array[13] of xyz für array[0..Anzahl-1] of xyz
Wäre eventuell nicht verkehrt, denn dann gäbe es weniger Leute (in Schulen), die ihre Zählung bei 1 statt 0 anfangen.

freimatz 9. Dez 2019 12:15

AW: TArray<string> als const im Record deklarieren
 
Und was so daran besser sein? Wenn ich Dinge zähle fange ich immer bei 1 an.
Habe gerade bei uns nach "[1.." gesucht - sechs Treffer. Es sind alles "[1..3]". Keinen finde ich verkehrt.
Aber wir schweifen ab.

Dennis07 9. Dez 2019 17:55

AW: TArray<string> als const im Record deklarieren
 
Zitat:

Zitat von DieDolly (Beitrag 1453007)
Zitat:

Sowas wie im C++ und anderen Sprachen geht im Delphi nicht, also nur die Anzahl und implizit beginnt es bei 0: array[13] of xyz für array[0..Anzahl-1] of xyz
Wäre eventuell nicht verkehrt, denn dann gäbe es weniger Leute (in Schulen), die ihre Zählung bei 1 statt 0 anfangen.

Jo, wäre vielleicht in vielerlei hinsicht nicht so dumm. Aber da jetzt noch ein
Delphi-Quellcode:
0..
an den Anfang zu schreiben ist denke ich eine zumutbare Anforderung an den Programmierer. Aber du hast natürlich Recht, semantischer Zucker wäre so etwas. Es würde einige Deklarationen um einiges verkürzen.
Damit der Compiler aber immer noch weiß, dass das nicht der gesamte Wertebereich sondern nur die obere Grenze ist, sollte die Deklaration vielleicht nicht genau so aussehen.

Aber mal ehrlich: Kommen wird das sicher ohnehin nicht, also warum da jetzt Gedanken hin verschwenden. Es gibt statische Arrays, die alles unterstützen, was man sich wünschen könnte und was der Compiler gleichzeitig noch hergibt. Und es gibt dynamische Arrays, die immer bei 0 beginnen und alles andere unterstützen, was statische nicht können.

himitsu 9. Dez 2019 18:27

AW: TArray<string> als const im Record deklarieren
 
Nein, wird nicht kommen, denn der Wunsch wurde schon zu oft in den letzten Jahren gestellt, aber passiert ist nie was.

Das poplige FreePascal (Lazarus) kann sowas seit ewig, da kann Delphi das doch nicht nachmachen.

Stevie 10. Dez 2019 10:08

AW: TArray<string> als const im Record deklarieren
 
Zitat:

Zitat von himitsu (Beitrag 1453098)
Das poplige FreePascal (Lazarus) kann sowas seit ewig, da kann Delphi das doch nicht nachmachen.

Also in FPC 3.0.4 kompiliert das nicht:
Delphi-Quellcode:
type x = array[13] of Integer;

himitsu 15. Dez 2019 14:09

AW: TArray<string> als const im Record deklarieren
 
Ist schon wieder paar Jahre her, das ich FPC benutzt hatte.
Aber ich bin mir ganz sicher damals ein paar Codes gesehen zu haben, wo sowas ging.

Aber vielleicht war da auch irgendeine Erweiterung, Makro oder so beteiligt?
Schade, dass Borland/Codegear die Möglichkeit für einen Precompiler zerstört haben. (echte Makros wären schon was)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz