![]() |
EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Hallo,
ich habe mich schon öfters gefragt, warum bei Delphi Bedingungen/Condition's und Vergleichen der rechte Wert mit einen Assign-Zeichen (also dem ist-gleich = Zeichen) eingeleitet wird. Für mich macht es mehr Sinn:
Delphi-Quellcode:
zu schreiben als:
if foo == 42 then...
Delphi-Quellcode:
weil das if foo = 42 doch sehr nach Zuweisung und nicht gerade nach Vergleich anmutet.
if foo = 42 then ...
Sind da Pläne bekannt, das zu ändern - oder ist das Historisch bedingt ? ich mein... Alles Neu macht der Mai ... |
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Zitat:
|
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Unter Pascal ist das "=" eben kein Assign-Zeichen, sondern ein Vergleichszeichen. Zum Assign verwendet man ":=".
Aber tröste dich, wenn man von Pascal kommt, dann sieht C halt einfach nur falsch aus. |
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Zitat:
|
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Ich schon. Ich kam von der Schule und da gab es nur "=". Ich fand das ":=" komisch und auch das ":=". :-D
|
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Wobei grade in C-Sprachen dieser Mist viele Probleme bereitet hat.
Logisch und Syntaktisch finde ich = garnicht schlecht. Es entspricht auch dem, was man im Matheunterricht mal gelernt hat. Zitat:
denn so wird erstmal die Variable überschrieben und es ergibt auch immer True. In nicht tysicheren C-igen kann man auch gern sowas bekommen. :lol: 1 + 1 = 11 1 - 1 = 0 |
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Zitat:
Ist auch alles nicht besser :stupid: Mit würde auch "=" "==" und "!=" reichen, aber die Welt ist halt komplexer :-D |
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
also rein logisch und mathematisch bedeutet ja = eine Zuweisung - zum Beispiel für Variablen:
v = 2. C = v + v. C = 2 + 2. C = 4. dann gibt es noch =/= was in C/C++ != oder in Pascal <> bzw. >= or <= entspricht. Ein: if (var = 2) würde in C oder vielen anderen Programmiersprachen logisch "wahr" (1) ergeben, weil zuerst der Variablen "var" der Wert 2 zugewiesen wird und die IF-Klausel dann schaut, ob der Wert der Variablen var 0 oder größer 0 ist. Und alles was größer 0 ist (was hier der Fall ist) wird als 1 - also wahr gemätscht bzw. ausgewertet. Das kann gefährlich werden wenn zum Beispiel auf EOF und/oder \0 geprüft werden soll. Weil \0 zugleich das terminierende End-Byte ist - by C-Zeichketten (Pchar) wie auch beim erreichen der EOF Marke. Beide Zeichen (also \0) haben dann unterschiedliche Bedeutungen. Im Ascii-Zeichensatz entspricht dann \0 das lachende Smily-Zeichen, das man mit einen DOS-Eingabe-Hex-Editor zu Gesicht bekommt, wenn mit einen Hex-Editor das binäre Image einer executable betrachtet (sofern die Codepage auch auf ASCII oder UTF-8 gestellt ist). Manche Hex-Editoren stellen auch einfach ein Leerzeichen dar - was dann auch gut verwechselt werden kann mit dem Leerzeichen 32 dez. oder 20 hex. Dann gibt es auch noch die geniale Idee von Null-Feldern (zum Beispiel in Datenbankprogrammen)... |
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Diskutieren wir jetzt ernsthaft darüber, warum Delphi/Pascal anders ist als C/C++/Java ... ?
Dann kann man auch darüber diskutieren, warum in Pascal/Delphi/C/C++ eine Einrückung keine Bedeutung hat, wo sie doch in COBOL und Python so wichtig sind. Will sagen: So eine Diskussion ist absolut sinnlos. |
AW: EMB DCE 12 - Bedingungen mit einen Assign-Zeichnen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr. |
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