Der Martin: switch mit preg_match

Beitrag lesen

Hallo,

Allerdings hat man in Sprachen mit starker Typisierung nicht die Möglichkeit, Boolean und Integer gemixt zurückgeben zu können. Trotzdem sehe ich da die Existenz von Boolean nicht als überflüssig an. Wenn (wie in C#) definiert ist, dass if nur boolesche Werte auswerten darf, kann man nicht aus Versehen einen Ausdruck notieren, der Integer zum Ergebnis hat.

das würde ich aber wieder als unbequeme Einschränkung sehen, da ich seit gut zwanzig Jahren in verschiedenen Programmiersprachen (schwerpunktmäßig aber C) ausnutze, dass alles, was numerisch nicht null oder nicht der NULL-Pointer ist, im boolschen Kontext als true gilt. Die strenge Unterscheidung ist etwas, was mich zum Beispiel in Pascal immer sehr gestört hat.

Da hat schon der Compiler was dagegen. Hier muss man typsauber vergleichen oder explizit typecasten, was auch dem Code-Leser beim verstehen der Intention hilft.

Ich bin da schon so verkorkst, dass es mir nicht hilft - im Gegenteil, durch explizit ausformulierte Typecasts wird der Ausdruck oft unübersichtlich und IMHO schwerer zu durchschauen. Anstatt

char *buffer;  
if ((buffer=(char *)malloc(BUFFERSIZE))!=NULL)

notiere ich ohne expliziten Typecast und ohne expliziten Vergleich einfach

char *buffer;  
if (buffer=malloc(BUFFERSIZE))

und finde das wesentlich übersichtlicher und leicher, schneller nachvollziehbar. Natürlich ist das eine Gewöhnungssache.

C dürfte da nachlässiger sein und maximal eine Warnung werfen.

Nicht mal das. C akzeptiert das einfach, fertig.

So long,
 Martin

--
"Wie geht eigentlich dein neues Auto?"
"Es geht nicht, es fährt!"
"Äh, ja. Und wie fährt es?"
"Och, es geht."
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(