Italia
Wünsche und Anregungen

Proposte per künftige Versionen

ENUM

 

Michael
W.
Hm, sieht ja schlimm aus wenn da die Formatierung verbogen wird, aber ich glaube jetzt ist es erkennbar.

Das ENUM hat ja inzwischen auch Java heimgesucht, es wird also nicht nur von mir gern genutzt.

Hier ein Beispiel per den Einzug in XProfan.
KompilierenMarkierenSeparieren
// -
enum eBoolean = eFalse, eTrue
// -
enum eJustify = eJustify_Left  \/*0*/
eJustify_Center  \/*1*/
eJustify_Right/*2*/
// -
enum eWeekdays = eWeekday_Sunday, \
eWeekday_Monday, \
eWeekday_Tuesday, \
eWeekday_Wednesday, \
eWeekday_Thursday, \
eWeekday_Friday, \
eWeekday_Saturday
// -
Declare eBoolean bTest
Declare eJustify lJustification
// -
bTest = eTrue
// -

Proc WDtoText

    Parameters eWeekdays eDay
    Var String Klartext = "Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday"
    Return SubStr(KlarText, eDay + 1, ",")// Rechnen mit ENUM

EndProc

// -
// Rechnen mit ENUM setzt die Konstante frei, alles OK
// Rechnen in ENUM-Var muß aber innerhalb der Grenzen eines ENUM bleiben; was passiert bei Überschreitung der Grenzen?
Declare eWeekdays eDay
Inc eDay
Dec eDay
// -
// Bewegen innerhalb von ENUM mittels  enumMin() und enumMax()
<kleinster ENUM-Wert> = enumMin(<enumtype>)
<größter ENUM-Wert> = enumMax(<enumtype>)
// -
// erlaubt dann z.B. auch... (intern gesteuert)
ForEach eDay
Print WDtoText(eDay)
EndFor
// -
// oder... (hier müßte das FOR dann auch typisierte Variablen ermöglichen)
For eWeekdays eDay, enumMin(eWeekdays), enumMax(eWeekdays)
Print WDtoText(eDay)
EndFor
// -
// evtl. noch
TestEnum(eVal)
// 
ob der Wert innerhalb der Grenzen ist.



Info: [...] 
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.01.2015  
 



Wo ist der Vorteil im Vergleich zu:

var myColorsEnumVar=array("rot","grün","blond")

in Verbindung mit ForEach... ?
 
09.01.2015  
 




Michael
W.
Ich habe bewußt eine Funktion zwischen ForEach gesetzt, damit das klarer wird. Es geht nicht einfach um die Zuweisung. Mit ENUMs ist noch ein bischen mehr possibile.

Auch
KompilierenMarkierenSeparieren
zeigt ja schon, das die Werte nicht immer nur aufsteigend von 0 gespeichert werden. Es können auch neue Startwerte (wie hier bei blond) gesetzt werden.

Ich kenne das ENUM aus Pascal (dort heißt's Aufzählungstyp):
KompilierenMarkierenSeparieren
type
TAmpel = (rot = 1, gelb = 2, gruen = 4);
TArbeitstage = (Mo = 1, Di = 2, Mi = Mo + Di, Don = 4, Fr = Di + Mi);// Mi = 1+2=3, Fr = 2+3=5
TDoppelt = (Bez1 = 1, Bez2 = 2, Bez3 = 3, Bez4 = 2);// sowohl Bez2 als auch Bez4 ergeben mit Ord = 2pre>

Inc/Dec/Ord funktionieren dort auch (succ/pred)

Anleihe aus: [...] 
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.01.2015  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

3.121 Views

Untitledvor 0 min.
H.Brill12.10.2022
Christof Neuß06.05.2021
p.specht31.05.2018
Michael W.28.01.2018
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

Michael W. (2x)
iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie