Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prinzipfrage: Boolean() vs. AsInteger <> 0 (https://www.delphipraxis.net/191184-prinzipfrage-boolean-vs-asinteger-0-a.html)

haentschman 17. Dez 2016 08:37

Delphi-Version: 10 Berlin

Prinzipfrage: Boolean() vs. AsInteger <> 0
 
Moin... 8-)

In welchen Fällen sollte man den Cast Boolean() statt Wert.AsInteger <> 0 bevorzugen? Persönlich halte ich den Cast für besser weil ohne "magic Numbers"...

Wie haltet ihr es? :P

Nachtrag Funktion durch Cast ersetzt

himitsu 17. Dez 2016 09:01

AW: Prinzipfrage: Boolean() vs. AsInteger <> 0
 
Es ist keine Funktion :zwinker:

Bei einem 4 Byte-Integer sollte man dann besser nach LongBool casten.


Und zu dem <>0 ... das ist die Definition eines "digitalen" Boolean.
0=False und alles Andere ist True

p80286 17. Dez 2016 09:37

AW: Prinzipfrage: Boolean() vs. AsInteger <> 0
 
Ein Boolean sollte Boolean sein, und nicht über irgendwelche "Tricks" erreicht werden. Natürlich ist die Binäre Darstellung letztlich eine Zahl, aber die Interpretation zählt hier und da kannst Du vereinbaren was immer Du willst. Auch wenn oft die Vereinbarung 0=false/<>0=true ist könnte es genauso gut sein >0=true/<0=false/0=null,undefined.
Solange Du Dich nicht als Binär-Archäologe betätigen willst, sollte das Dich nicht interessieren. Es soll allerdings im Datenbankumfeld immer noch gang und gäbe sein sich mit solchen Klimmzügen das Leben zu erschweren.

Gruß
K-H

sakura 17. Dez 2016 09:38

AW: Prinzipfrage: Boolean() vs. AsInteger <> 0
 
Zitat:

Zitat von haentschman (Beitrag 1356424)
In welchen Fällen sollte man die Function Boolean() statt Wert.AsInteger <> 0 bevorzugen?

Ist eigentlich eher Geschmackssache, da das Ergebnis sich nicht ändert.

Wenn Du aber unbedingt eine Regel suchst, dann würde ich sagen, immer dann, wenn der Wert eigentlich als Boolean interpretiert werden soll. Das heißt, manche Funktionen geben 0 zurück, wenn etwas (nicht) klappt, und irgendeinen unbestimmten Wert in anderen Fällen. Meiner Meinung nach ist das schlechtes Design, aber es gibt solche Funktionen hin und wieder...

...:cat:...

haentschman 17. Dez 2016 09:45

AW: Prinzipfrage: Boolean() vs. AsInteger <> 0
 
Zitat:

Wenn Du aber unbedingt eine Regel suchst, dann würde ich sagen, immer dann, wenn der Wert eigentlich als Boolean interpretiert werden soll.
...so sehe ich das auch. 8-)

mensch72 17. Dez 2016 11:50

AW: Prinzipfrage: Boolean() vs. AsInteger <> 0
 
- wir haben Booleans bei Erweiterungen schon oft durch MultState Values ersetzt, und wenn es nur ein "NULL/NotSet/Undefined" für ein BooleanValue war

- da bei BooleanWerten in einer DB nicht jeder sauber mit dem NULL umzugehen versteht, vermeiden wir es da komplett und verwenden im einfachsten Fall einen Integer

Ist eine Geschmacksfrage, und für mich als jemanden der auch C Source schreibt ist eh 0=False und meist alles <>0 True bis eventuell ein MagicValue für NotSet/NULL :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz