Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Beiträge

RAD Studio 13: Ein bedingter ternärer Operator für die Delphi-Sprache

Ein bedingter ternärer Operator für die Delphi-Sprache

Embarcadero arbeitet an einer neuen Version von Delphi (und RAD Studio) mit dem Codenamen Ganymede, die sich derzeit im Beta-Stadium befindet. In diesem Blogbeitrag und weiteren, die folgen werden, möchten wir Ihnen einige der spannenden neuen Funktionen dieser Version vorstellen. Dieser Blogbeitrag basiert auf einer Vorabversion der RAD Studio-Software. Bis zum GA-Release des Produkts ist keine Funktion verbindlich.

Neben anderen Verbesserungen an der Delphi-Sprache und ihren Compilern wird mit RAD Studio 13 erstmals ein bedingter Operator (oder ternärer Operator) in die Object Pascal-Sprache eingeführt. Dies ist seit geraumer Zeit eine der von Kunden am häufigsten geforderten Sprachverbesserungen, und diese Funktion ist in der aktuellen Ganymede-Beta zum Testen verfügbar.

Delphi hat jetzt einen ternären Operator, der eine neue Form des If-Schlüsselworts verwendet

Ein ternärer oder bedingter Operator ist ein Operator, der sich wie eine if-Anweisung verhält, mit einer Bedingung und zwei möglichen Werten. In vielen anderen Programmiersprachen wird der ternäre Operator mit der Syntax?: angegeben. In Delphi wollen wir so weit wie möglich eine vertraute und an Pascal orientierte Syntax beibehalten, daher haben wir uns entschieden, das if Symbol als Operator zu verwenden. Mit anderen Worten,if kann jetzt verwendet werden, um eine Anweisung oder einen Operator anzuzeigen, je nach Position im Quellcode. Dies ist ein Beispiel für einen einfachen Zuweisungsausdruck in zwei Versionen, die erste basiert auf einer traditionellen if-Anweisung und die zweite auf einem if-Operator:

 // klassische If-Anweisung
  if Left < 100 then
    X := 22
  else
    X := 45;

  // Zuweisung mit dem if-Operator
  X := if Left < 100 then 22 else 45;

Der Hauptunterschied besteht darin, dass der if-Operator als Teil eines beliebigen Ausdrucks verwendet werden kann, und zwar wie folgt:

Hier sieht man diesen Code im Editor der 64 Bit-Version der RAD Studio IDE unter Verwendung der RAD Studio 13 Beta.

conditionaloperator1

Der if-Operator in Aktion im RAD Studio 13-Editor (in der 64 Bit-Version der IDE)

Was sind die Kompatibilitätsregeln für den ternären Operator von Delphi?

Für die Kohärenz zwischen den Typen der beiden Unterausdrücke gibt es besondere Regeln. Kurz gesagt, sie müssen vom gleichen Typ sein, oder ein direkt zuweisbarer Typ. Wenn dies nicht der Fall ist, erhält man einen Compilerfehler, wie in diesem Fall:

[dcc32 Fehler] Unit31.pas(38): E2010 Inkompatible Typen: 'string' und 'Integer'

conditionaloperator2

Ein Beispiel für einen Inkompatibilitätsfehlern des if-Operators

In der Beta-Dokumentation gibt es eine sehr lange Tabelle mit den verschiedenen Typkombinationen, die mit dem neuenif Ausdruck verwendet werden können, und dem resultierenden Typ des Ausdrucks für jede dieser Kombinationen. Diese Tabelle muss hier nicht wiedergeben werden, da sie einige Seiten lang ist und eine Detailtiefe aufweist, die für diese Einführung nicht erforderlich ist.

Wie lautet die Prioritätsreihenfolge für den ternären Delphi-Operator?

Bei der Verwendung des if-then-else-Operators innerhalb eines Ausdrucks ist zu beachten, dass andere Operationen (z. B. Addition) höhere Prioritäten haben, was zu unerwarteten Fehlern führen kann. Hier sollten zusätzliche Klammern verwendet werden, wie man es oft bei booleschen Operatoren mit niedriger Priorität durchführen sollte. Schauen wir uns diesen nachfolgenden Code an:

Was wird ausgegeben, wennLeft kleiner als 100 ist? Ist es „Small“ oder „SmallNice“? Es ist ersteres, weil das+ eine höhere Priorität hat und es sich so darstellt:

wenn das zusätzliche Wort immer hinzugefügt werden soll, sollte man das so verwenden:

RAD Studio 13 wird eine Reihe weiterer neuer Funktionen und Modernisierungen für die Sprache Delphi mit sich bringen

Dies wird zwar nicht die einzige Änderung der Delphi-Sprache in RAD Studio 13 sein, aber es ist eine der auffälligsten und am häufigsten nachgefragten Änderungen an der Sprache, die wir einführen werden. Es gibt weitere neue Operatoren und einige neue und erweiterte Compiler-Direktiven. Insgesamt wird Delphi 13 (als Teil von RAD Studio 13) ein sehr wichtiges Release für die Entwicklung der Delphi Object Pascal Sprache sein. Hier folgen demnächst noch mehr technische Beiträge.

Dieser Blogbeitrag basiert auf einer Vorabversion der RAD Studio-Software. Bis zum Veröffentlichungszeitpunkt des Produkts ist noch keine Funktion festgelegt.

Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

2 Bemerkungen

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES