AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 13 - Ternary Operator

Ein Thema von bernau · begonnen am 27. Aug 2025 · letzter Beitrag vom 2. Sep 2025
Antwort Antwort
Seite 3 von 6     123 45     Letzte » 
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.743 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#21

AW: Delphi 13 - Ternary Operator

  Alt 28. Aug 2025, 14:57
Ich hätte da wohl eher die ifthen()-Funktionen per Compilerschalter zum Ternary-Operator gemacht. Oder vielleicht stattdessen eine iif()-Funktion eingeführt. Aber das hätte natürlich zu Inkompatibilitäten für existierenden Code führem können.
Funktionen lösen das Problem nicht und eine unsichtbare Compiler-Magic ist auch nicht wirklich intuitiv. Es ist ja schon nicht mal sicher dass inline immer das macht was man erwartet.
Eine neue Funktion iif(<condition>, <truevalue>, <falsevalue>), die per Compiler Magic als Ternary Operator fungiert, also anhand der <condition> nur <truevalue> oder <falsevalue> auswertet, wäre sehr wohl möglich gewesen. Dass sie immer als solche funktioniert hätte man genauso erzwingen könnnen wie für die (if <condition> then <truevalue> else <falsevalue>) Syntax. Damit hätte sich die Frage nach der Operator-Priorität auch erledigt gehabt. Wollte man aber nicht.

Gab es den Ternary Operator nicht schon in Free Pascal? Hm, nee, anscheinend nicht, zumindest findet Ecosia nichts.
Thomas Mueller
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.146 Beiträge
 
Delphi 2009 Professional
 
#22

AW: Delphi 13 - Ternary Operator

  Alt 28. Aug 2025, 15:21
Ich hätte da wohl eher die ifthen()-Funktionen per Compilerschalter zum Ternary-Operator gemacht.
Ich hätte tatsächlich auch diese Variante bevorzugt.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
650 Beiträge
 
Delphi XE6 Enterprise
 
#23

AW: Delphi 13 - Ternary Operator

  Alt 28. Aug 2025, 15:43
Eine neue Funktion iif(<condition>, <truevalue>, <falsevalue>), die per Compiler Magic als Ternary Operator fungiert, also anhand der <condition> nur <truevalue> oder <falsevalue> auswertet, wäre sehr wohl möglich gewesen.
Oder man setzt es ganz anders um, indem "lazy evaluation", d.h. Auswerten eines Parameters immer nur dann, wenn tatsächlich ein Zugriff stattfindet, per Compiler Magic mit einem Keywort umgesetzt wird. Dann kann man es bei IfThen belassen, aber die Definition sähe aus wie "function IfThen(AValue: Boolean; [lazy] const ATrue: Integer; [lazy] const AFalse: Integer = 0): Integer; overload; inline;".
Und die Benutzung wäre nicht auf IfThen() beschränkt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi 13 - Ternary Operator

  Alt 28. Aug 2025, 16:04
Zitat:
lazy
Dann würde es aber auch wieder nur für Inline-Funktionen funktionieren (und auch nur, wenn das Inline wirklich funktioniert, also z.B. nicht in Packages oder wenn man ein Uses vergisst uvm.),
denn ansonsten gibt es keine andere Wahl, als es vorher aufzulösen, um das Ergebnis an die Parameter übergebenzu können.

Allerdings könnte es beim Inline auch jetzt schon so behandelt werden, ohne [lazy], wenn das Inlining wirklich ordentlich arbeiten würde.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.105 Beiträge
 
Delphi 12 Athens
 
#25

AW: Delphi 13 - Ternary Operator

  Alt 28. Aug 2025, 20:10
Gab es den Ternary Operator nicht schon in Free Pascal? Hm, nee, anscheinend nicht, zumindest findet Ecosia nichts.
Nein, dort wurde als Reaktion gefragt, ob der Operator dort eingebaut wird:
https://forum.lazarus.freepascal.org...?topic=71952.0
Dort wird auch dies als Beispiel genannt:
const c = if cond then Value1 else Value2;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.105 Beiträge
 
Delphi 12 Athens
 
#26

AW: Delphi 13 - Ternary Operator

  Alt 29. Aug 2025, 18:10
Ich hätte es auch lieber, wenn Embarcadero vorzugsweise meine gemeldeten Bugs und Features implementieren würde.
Ich hätte auch gedacht, dass z.B. Probleme mit dem Compiler, bei dem dieser Code kompiliert, der so nicht funktionieren dürfte und dann in Schutzverletzungen endet, etwas mehr Priorität hätten.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
713 Beiträge
 
Delphi 12 Athens
 
#27

AW: Delphi 13 - Ternary Operator

  Alt 29. Aug 2025, 21:45
Ich hätte es auch lieber, wenn Embarcadero vorzugsweise meine gemeldeten Bugs und Features implementieren würde.
Ich hätte auch gedacht, dass z.B. Probleme mit dem Compiler, bei dem dieser Code kompiliert, der so nicht funktionieren dürfte und dann in Schutzverletzungen endet, etwas mehr Priorität hätten.
Bedauerlich ist, dass es keine Möglichkeit mehr gibt, einem Anliegen durch ein Upvote mehr Gewicht zu verleihen. Bei Deinem Beitrag ist nicht mal ersichtlich, ob er überhaupt je mal von einem Mitarbeiter angesehen wurde.
Roland
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Delphi 13 - Ternary Operator

  Alt 30. Aug 2025, 00:46
Bedauerlich ist, dass es keine Möglichkeit mehr gibt, einem Anliegen durch ein Upvote mehr Gewicht zu verleihen.
Das soll wohl jetzt über die Kommentare erfolgen.
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.685 Beiträge
 
Delphi 12 Athens
 
#29

AW: Delphi 13 - Ternary Operator

  Alt 30. Aug 2025, 02:15
Ein bissl mehr oder wenigstens etwas Feedback von denen selbst, wäre aber auch nicht verkehrt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
361 Beiträge
 
Delphi 12 Athens
 
#30

AW: Delphi 13 - Ternary Operator

  Alt 30. Aug 2025, 20:53
Bedauerlich ist, dass es keine Möglichkeit mehr gibt, einem Anliegen durch ein Upvote mehr Gewicht zu verleihen.
Das soll wohl jetzt über die Kommentare erfolgen.
Funktioniert leider auch nur so semi:
https://embt.atlassian.net/servicede...rtal/1/RSS-526
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte » 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:00 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