AGB  ·  Datenschutz  ·  Impressum  







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

Delphi 13 - Ternary Operator

Ein Thema von bernau · begonnen am 27. Aug 2025 · letzter Beitrag vom 3. Sep 2025
Antwort Antwort
Seite 6 von 6   « Erste     456   
Samorion

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

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 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.693 Beiträge
 
Delphi 12 Athens
 
#52

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 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
Benutzerbild von himitsu
himitsu

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

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 15:26
Was ist eigentlich mit CASE?


if x * case idx of 1: 3; 2: 9; else 666 end + 7 = 111 then Beep;
Delphi-Quellcode:
if x
  * case idx of
      1: 3;
      2: 9;
      else 666
  end
  + 7
  = 111
then
  Beep;
Das CASE ist ja auch nur mehrere IFs,
so in etwa wie https://www.postgresql.org/docs/curr...nditional.html
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.247 Beiträge
 
Delphi 12 Athens
 
#54

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 16:25
Was ist eigentlich mit CASE?

if x * case idx of 1: 3; 2: 9; else 666 end + 7 = 111 then Beep;
Oh ja, das wäre wünschenswert, aus rein logischer Abstraktions-Sicht, aber damit wird Pascal ganz schön C++-ish
Hoffentlich muss ich diese Zeile nie debuggen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 17:25
keine Sorge, mit IFs sieht es nicht besser aus.

if x * if idx = 1 then 3 else if idx = 2 then 9 else 666 + 7 = 111 then Beep;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (Gestern um 23:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

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

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 19:16
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.
Oh Sh*t, daran habe ich noch gar nicht gedacht.

Mal abgesehen davon, dass die Operator-Priorität damit auch sehr spaßig ist.
Thomas Mueller
  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
 
#57

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 22:08
Was ist eigentlich mit CASE?
Es gibt zum ternären Operator kein case-Pendant. Selbst wenn es das gäbe, würde der Term mit X: Integer niemals True ergeben.

if a * if True then 1 else 2 end + 7 = 9 then
Das end geht da nicht. Man muss da schon korrekt klammern:

if a * (if True then 1 else 2) + 7 = 9 then

Mal sehn wie darauf die CodeFormatter reagieren, vor allem jener Einer.
Welchen meinst du denn jetzt? Den von Thomas?
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.693 Beiträge
 
Delphi 12 Athens
 
#58

AW: Delphi 13 - Ternary Operator

  Alt Gestern, 23:59
ups, das End vergessen
aber stimmt, wenn man es jetzt so sieht ...... gehört das + dann noch zum else, oder ist das IF dann schon vorbei (vermutlich nicht)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
skybibo

Registriert seit: 23. Jun 2008
Ort: NRW
33 Beiträge
 
Delphi 12 Athens
 
#59

AW: Delphi 13 - Ternary Operator

  Alt Heute, 09:23
Zitat:
Das end geht da nicht. Man muss da schon korrekt klammern:

if a * (if True then 1 else 2) + 7 = 9 then
Mit den Klammern macht das schon eher einen Sinn. So kann man leichter erkennen, was gemeint ist. Die Version mit „end“ wäre für mich zu kryptisch.
Bernd
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi 13 - Ternary Operator

  Alt Heute, 10:09
Das mit End war nur ein Fehler ... hatte das CASE in IF umgebaut und das END vergessen zu löschen.


Es gibt aber ein bestimmtes CASE, wo ich mir seit Jahrzehnten endlich ein END wünschen würde. (das CASE im RECORD)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


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 18:25 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