AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 13 - Ternary Operator

Ein Thema von bernau · begonnen am 27. Aug 2025 · letzter Beitrag vom 3. Sep 2025
Antwort Antwort
Benutzerbild von Stevie
Stevie

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

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 08:12
FreePascal kann das https://www.freepascal.org/docs-html/ref/refsu52.html
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 7. Sep 2006
Ort: Berlin
446 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 12:29
Der ternäre Operator war über Jahre hinweg eines der häufigsten angefragten Spracherweiterungen, und mit RAD 13 wird er nun endlich umgesetzt.

Gleichzeitig ist er optional und man "kann" ihn verwenden, muss aber nicht.

Auch das Argument mit "IfThen" möchte ich kurz ansprechen. Denn "IfThen" wertet alle Parameter aus (das ist relevant!) und nicht nur die notwendigen Parameter, hat gleichzeitig eine eingeschränktere Typzuordnung (und erfordert unterschiedliche uses-Anweisungen, um Funktionen für verschiedene Typen zu finden), funktioniert nicht für so viele Datentypen, ist ein zusätzlicher Funktionsaufruf usw...

Daher würde ich den ternären Operator als wertvolle Spracherweiterung für Object Pascal betrachten, worüber man natürlich mit Pro/Contra diskutieren kann.

Wer mehr wissen möchte, darf sich gerne die Kommentare im englischen Blog (https://blogs.embarcadero.com/coming...elphi-language) durchlesen, wo Ian Barker viele Punkte im Detail beantwortet hat.
Devid
Devid Espenschied
Pre-Sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN

Geändert von DevidEspenschied ( 2. Sep 2025 um 13:24 Uhr) Grund: Obligatorisch -> Optional
  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
 
#3

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 12:54
Gleichzeitig ist er obligatorisch und man "kann" ihn verwenden, muss aber nicht.
Du meinst optional, nicht obligatorisch, oder?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Samorion

Registriert seit: 20. Dez 2023
Ort: Sachsen-Anhalt
6 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 13:10
Also ich freue mich über den Ternary Operator; als jemand, der von anderen Sprachen kommt.

Verstehe allerdings, wieso es manche gibt, die dagegen sein könnten (Wie man im Blogpost ja auch sieht)
Christian
  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
446 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 13:27
Zitat von Uwe Raabe:
Du meinst optional, nicht obligatorisch, oder?
Natürlich.

@Samorion: das Thema ist halt grundsätzlich, dass du als Compilerhersteller ständig Kritik bekommst, und man es nicht jedem Entwickler gerecht machen kann. Das ist ein langfristiges Problem, das sich nicht beheben lässt. Daher empfehle ich, sich die Spracherweiterung in Ruhe anzuschauen, sie auszuprobieren, und dann für sich und seine Projekte die Vorteile und Nachteile abzuwiegen.
Devid
Devid Espenschied
Pre-Sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
674 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 13:44
Hm, ich traue mich auch mal mit meiner offenbar "unpopular opinion" aus dem Loch und muss sagen, dass ich das neue Feature ziemlich cool finde. IfThen hat mir nie so gefallen, die Gründe wurden hier mittlerweile alle genannt.

Und auch die Syntax finde ich, so wie sie vorgeschlagen ist, eigentlich okay, weil sie für mein Empfinden gut zur sonstigen Delphi-Syntax passt. Wir nutzen ja auch sonst keine/kaum kryptische Kurzschreibweisen, und so finde ich es dann auch hier gut, vor allem für die Lesbarkeit, dass man die Schlüsselworte if, then und else ausschreiben muss.

Dass es andere Punkte, vor allem Compiler-Bugs, gibt, die vielleicht noch dringender wären als neue Features, kann ich gut verstehen. In einer idealen Welt sollte man natürlich das eine tun, ohne das andere zu lassen.
  Mit Zitat antworten Zitat
Samorion

Registriert seit: 20. Dez 2023
Ort: Sachsen-Anhalt
6 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 13:53
@DevidEspenschied: Klar. Das ist an anderen Stellen auch so. Wenn ich mir da auch Debatten rund um neue C++ Features ansehe bspw.
Christian
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi 13 - Ternary Operator

  Alt 2. Sep 2025, 15:22
Ohhh, auf Einwas freue ich mich schon .... ist mir grad eben aufgefallen.

OK, das x := a * if True then 1 else 2 end; ist schon bekannt,
aber man kann das natürlich auch innerhalb eines if-then benutzen

if a * if True then 1 else 2 end + 7 = 9 then
Mal sehn wie darauf die CodeFormatter reagieren, vor allem jener Einer.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

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 05: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