AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TRUE/FALSE Part

Ein Thema von EWeiss · begonnen am 30. Mär 2015 · letzter Beitrag vom 2. Apr 2015
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

AW: TRUE/FALSE Part

  Alt 2. Apr 2015, 00:59
Jajn. In Delphi ist es so üblich. Ich weiß nicht ob es auch schon typisch Pascal war. Aber es war nicht typisch Visual Basic. So wurde ich in eine Firma gebeten meine Codes in Delphi so zu schreiben, dass auch VB-Kollegen es verstehen würden. Und mit IF DasWetterSchoen THEN konnten sie nichts anfangen. Das war für sie unlogisch und einig glaubten, das ich den Code bewußt unleserlich schreibe. Einige dachten, dass ich scherze. Ich sollte letztendlich den Code dann so schreiben: IF DasWetterSchoen = TRUE THEN , denn dass haben alle verstanden.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: TRUE/FALSE Part

  Alt 2. Apr 2015, 01:34
Ich kenne keine moderne Programmiersprache wo es üblich wäre, Vergleiche mit booleschen Werten zu machen. Vielleicht waren die VB-Leute in dem Schuppen einfach nur verschroben.
Edit/nevermind: Ich hab gefunden, das solche Vergleiche sogar mit in der MS-VB-Doku zu finden sind

Knobelaufgabe: Welchen Typ hat !!((!!a)-1) in C++, wenn a ein Integer ist. Wie kann man das kürzer/klarer schreiben?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.361 Beiträge
 
Delphi 12 Athens
 
#3

AW: TRUE/FALSE Part

  Alt 2. Apr 2015, 03:09
Zitat:
Beachten Sie, dass die Zuweisungsanweisung newCustomer = True wie der Ausdruck im vorherigen Beispiel aussieht. Sie führt jedoch eine andere Funktion aus und wird auf eine andere Art verwendet. ...
Code:
If newCustomer = True Then
   newCustomer = False
End If
Darum haben in Delphi/Pascal die Zuweisungen und Vergleiche unterschiedliche Operatoren, damit man das nicht verwechseln kann und nicht das Selbe raus kommt, so wie in PHP.
PHP-Quellcode:
If (newCustomer = True) {
    newCustomer = False
}
Was macht denn !!?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#4

AW: TRUE/FALSE Part

  Alt 2. Apr 2015, 07:10
Wenn der Programmierer den Code
if Irgendwas=True then.. irgendwie logisch findet, dann kann er doch an der Stelle nicht aufhören, sondern muss eigentlich weiter machen, also:
if ((Irgendwas = True) = True) = True........ then.. ?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: TRUE/FALSE Part

  Alt 2. Apr 2015, 09:02
Badenpower:

Zu dem Thema true <> 1:
Code:
asm
  xor eax, eax
  mov al, true
  nop
end;
Ob der Compiler B := 1 statt B := true zulässt oder nicht ändert nichts daran dass true = 1 ist! (B: Boolean)
true = Ord(true) = 1
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#6

AW: TRUE/FALSE Part

  Alt 2. Apr 2015, 21:25
Zitat:
Beachten Sie, dass die Zuweisungsanweisung newCustomer = True wie der Ausdruck im vorherigen Beispiel aussieht. Sie führt jedoch eine andere Funktion aus und wird auf eine andere Art verwendet. ...
Code:
If newCustomer = True Then
   newCustomer = False
End If
Darum haben in Delphi/Pascal die Zuweisungen und Vergleiche unterschiedliche Operatoren, damit man das nicht verwechseln kann und nicht das Selbe raus kommt, so wie in PHP.
PHP-Quellcode:
If (newCustomer = True) {
    newCustomer = False
}
Was macht denn !!?
Normalerweise schreibt man für einen Vergleich ja auch "==". Dass Zuweisungen selbst einen Wert haben, ist eher ein Feature für faule Programmierer .

lg Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: TRUE/FALSE Part

  Alt 2. Apr 2015, 07:04
Ich kenne keine moderne Programmiersprache wo es üblich wäre, Vergleiche mit booleschen Werten zu machen.
In C# gibt es eine ziemlich große Fraktion, die meint, das if (!Foo) schlecht lesbar wäre, das das '!' leicht verschluckt wiürde. Sie bevorzugen if (Foo == false) . Und weil es immer 'Puristen' gibt, die B sagen, wenn jemand A ruft, schreiben die dann if (Foo == true)
...Die einzige in allen Sprachen konstante Weisheit ist: false = 0...
Wenn man für alle Fälle und immer sicher sein will, prüft man stets nur auf false...Ein einfaches Weglassen von =true oder =false hat bei mir bisher aber auch in Fällen der Zusammenarbeit mit C und APIs immer zum richtigen Ergebnis geführt. Entweder Glück, oder Delphi tut da relativ sinnvolle Dinge im Hintergrund. Oder ich habe bisher keine allzu bösartigen DLLs in der Hand gehabt.
Du bestätigst also eigentlich durch deine eigenen Erfahrungen die Aussagen der meisten hier.

Delphi tut hier gar nichts, außer eben, nur 0 als 'FALSE' zu behandeln. Wie pervers ein Vergleich auf 'True' oder 'False' mit anderen Werten als 0/1 ist (z.B. obskure Rückgabewerte einer DLL-Funktion) zeigt meine Aufstellung. Die besagt ja genau das, was du durch Erfahrung herausbekommen hast: Nie auf =true, =false prüfen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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