m.fuchs hat geschrieben: Do 14. Sep 2023, 19:31
Ich verstehe den Sinn dieser Schreibweise in Pascal nicht. Wer so etwas braucht soll bitte C nehmen.
Was ist da aus deiner Sicht der Vorteil?
Relativ einfach, es ist
1. Weniger zu tippen
2. Einfacher zu lesen, denn du weist beereits schon nach dem zweiten Zeichen was hier passiert
3. Weniger Fehleranfällig, denn beim tippen einer Variable können tippfehler passieren
Beispiel:
Ganz klar, hier wir wird die weite um die des Buttons vergrößert. Einfach zu tippen und einfach zu verstehen.
Hier erkennst du erst wenn du die ganze Expression gelesen hast das es sich um einen simplen inkrement handelt. Selbst im best case, wenn du die Increment variable direkt nach links schreibst:
Musst du immernoch mental bis zum 4ten token lesen bevor du verstehst was passiert. Es ist schlicht weg mehr mentaler Aufwand. Nicht viel, aber jedes bisschen kostet Zeit, Nerven und Energie.
Gleichzeitig, wenn du mehr tuen musst um etwas zu erreichen gibt es auch mehr Gelegenheiten Fehler zu machen. Wenn du z.B. Lazarus mit Autocomplete verwendest, passiert es manchmal das du das falsche completest, und ClientWidth ist erstaunlich nah an ClientHight. Und lustigerweise ist mir das sogar grade genau beim Tippen passiert, das ich beim Beispiel beim zweiten mal ausversehen ClientHight hingeschrieben hab ganz ohne Autocorrect, weil ich irgendwie ClientHight im Kopf hatte.
Fehler passieren, und gutes Sprachdesign sollte möglichst versuchen alle Fehlerquellen zu vermeiden.
Außerdem, noch ein Bonuspunkt, du brauchst keine Klammern:
Code: Alles auswählen
X *= 2;
// Willst du ändern zu
x *= 2 + ScalingFactor;
Durch die *= schreibweise kannst dus einfach hinten dran hängen, bei normaler arithmetik musst du klammern, was zwar natürlich kein großer Aufwand ist, aber dennoch eine Fehlerquelle, und ich würde Lügen wenn ich sagen würde das ich, z.B. wenn ich müde war, noch nie Klammern vergessen habe.
Ich sehe tatsächlich absolut keinen Nachteil darin.