AGB  ·  Datenschutz  ·  Impressum  







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

Nullable oder NaN

Ein Thema von freimatz · begonnen am 13. Jan 2023 · letzter Beitrag vom 16. Jan 2023
Antwort Antwort
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Nullable oder NaN

  Alt 14. Jan 2023, 11:08
Hoi, Danke für alle Rückmeldungen. Den akuten Fall habe ich jetzt anders gelöst. Es bleibt für mich aber schon interessant.
@Günther: Gerade das Nullable finde ich in manchen Fällen nicht so lesbar. Andererseits ist da deutlicher was damit gemeint ist.
Mehr als die Geschwindigkeit sehe ich den Speicherverbrauch. Ein Double benötigt m.W. 8 Byte. Ein Nullable vermute ich mal auf 4 mehr. Intern wird ein String missbraucht. Die Diskussion zu der Implementierung habe ich mal gelesen, geht wohl nicht besser. (Eine native Implementierung von EMB wäre wohl besser aber nicht zu erwarten.)
Wenn man nun ein Array von 10000 Vektoren (x,y,z) hat, dann ist das schon relevant.
@Rollo: wo es Sinn macht ... hast Du ein Beispiel?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Nullable oder NaN

  Alt 14. Jan 2023, 11:14
So gesehn ... Warum soll man es kompliziertet/aufwändiger machen, wenn es NaN bereits gibt und es keinen Grund gibt es nicht zu benutzen?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.631 Beiträge
 
Delphi 12 Athens
 
#3

AW: Nullable oder NaN

  Alt 14. Jan 2023, 13:27
Ein Double benötigt m.W. 8 Byte. Ein Nullable vermute ich mal auf 4 mehr.
Bei Win64 dann schon 8...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Nullable oder NaN

  Alt 14. Jan 2023, 14:22
Die Diskussion zu der Implementierung habe ich mal gelesen, geht wohl nicht besser.
Jetzt, mit den CustomManagedRecords, schon.

Früher konnte man nur mit LongString, Interface oder Variant halbwegs "einfach" arbeiten, da mit automatischem Speichermangement/Initialisierung und Referenzzählung, bzw. automatischem CopyOnWrite.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Jan 2023 um 14:37 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.170 Beiträge
 
Delphi 12 Athens
 
#5

AW: Nullable oder NaN

  Alt 14. Jan 2023, 17:14
@Rollo: wo es Sinn macht ... hast Du ein Beispiel?
Ich nutze das z.B. für simple Messages mit ausschliesslich primitiven Typen, wo das Messaging von Nullable-Records oder anderen Inkarnationen zu aufwändig wäre.
Da könnte man man bei Bedarf auch beim Sender von einem Nulable in ein entsprechendes NaN-Integer wandeln und am Empfänger wieder zurück.

Jedenfalls nutze ich das auch dort wo nicht nur Kommunikation innerhalb der eigenen App in Frage kommt,
sondern es mit anderen Apps/Geräten im Netzwerk kommunizieren muss, unter Umständen mit ganz anderen Programmiersprachen.
Simple Typen wie Integer gehen da eigentlich immer sind in der Regel direkt lesbar und sind leicht zu konvertieren.
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Nullable oder NaN

  Alt 15. Jan 2023, 16:19
Was für ein Nullable überhaupt?
Das aus Spring4D oder gibt es in Delphi inzwischen ein richtiges in der RTL?
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Nullable oder NaN

  Alt 16. Jan 2023, 10:30
Gibt noch keines in der RTL - aber auch andere Bibliotheken haben ihre Nullables.
Ich hab gerade mal in develop eingebaut, dass man ab Delphi 11 über die Spring.inc einschalten kann, dass ein Nullable<T> das "Custom Managed Record" Feature nutzt und den "HasValue" State in einem Boolean speichert.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Nullable oder NaN

  Alt 16. Jan 2023, 11:38
Und bei Double als NaN?
Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: Nullable oder NaN

  Alt 16. Jan 2023, 12:32
Und bei Double als NaN?
Nein, weil
a) abhängig vom Typ T die interne Semantik des Nullable<T> nicht ohne einen gigantischen Aufwand geändert werden kann
b) "Kein Wert vorhanden" nicht dasselbe ist wie "es gibt einen Wert, aber der ist NaN"
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Nullable oder NaN

  Alt 16. Jan 2023, 12:47
Und bei Variant als NULL?

Wobei dort "kein Wert" ja eigentlich EMPTY ist.
Ein Therapeut entspricht 1024 Gigapeut.
  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 12:12 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