Kaeru Gaman hat geschrieben:wenn ich eine enumeration habe, kann ich an beliebiger stelle eine weitere
konstante in die enumeration-liste einfügen, auch am anfang oder ende,
und die funktionalität leidet nicht darunter.
Das geht bei meinem Beispiel auch beinahe. Dass man darauf achten muss, das Array immer ausreichend groß zu dimensionieren ist eine Einschränkung. Dadurch wird das Ganze aber noch nicht ad absurdum geführt, denn bei einer konkreten Anwendung kann es durchaus sein dass am Ende nichts mehr eingefügt werden soll (siehe Beispiel oben).
//edit1: Mir ist gerade eingefallen, wie sich diese Einschränkung auch noch leicht umgehen lässt, nämlich durch Verwendung eines Dummys der immer am Ende der Liste steht.
//edit2: Das geht sogar noch besser, nämlich ohne Dummy, unter Verwendung der reservierten Konstante
#PB_Compiler_EnumerationValue:
Code: Alles auswählen
Enumeration
#Montag
#Dienstag
#Mittwoch
#Donnerstag
#Freitag
#Samstag
#Sonntag
EndEnumeration
Structure Tag
wetter.s
wastun.s
EndStructure
Dim Wochentag.Tag(#PB_Compiler_EnumerationValue-1)
Kaeru Gaman hat geschrieben:der wunsch, das in einer schleife oder gar als array indices zu verwenden,
legt mich darauf fest, die enumerierten konstenten wieder in einen festen
bezug zu den zahlen zu setzen,
Allein durch eine Schleife oder ein Array wird das nicht zwangsläufig festgelegt. Es geht v.a. darum, dass die Zahlen in einer bestimmten
Reihenfolge auftreten. Wenn beispielsweise jemand einen neuen Wochentag zwischen Dienstag und Mittwoch erfinden würde, könnte man den in mein obiges Beispiel ohne jedes Problem einfügen.
Etwas anderes ist es allerdings, wenn bestimmte
Berechnungen durchgeführt werden, die z.B. nur funktionieren wenn #Montag = 0 ist.
Kaeru Gaman hat geschrieben:was die verwendung von Enum überhaupt
negiert, dafür nimmt man dann keine konstanten sondern literale.
Kann man auch nicht so allgemein sagen. Die Verwendung von Konstanten verbessert oft die Lesbarkeit eines Programms beträchtlich, so in meinem obigen Beispiel etwa
#Sonntag statt
6. Quasi als Zwischending zwischen Literalen und Enumeration kann man ja aber den Konstanten auch explizit ihre Werte zuweisen, z.B.:
Gruß, Little John