Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiRAD Studioニュース

RAD Studio 13 で導入予定の新機能:Delphi 言語の条件演算子(三項演算子)

ternary operator

Embarcadero は、Delphi(および RAD Studio)の新バージョン(開発コード名 Ganymede、現在ベータ版)に取り組んでいます。このブログ記事と今後の記事では、このリリースの魅力的な新機能の一部をご紹介していきます。このブログ記事は、RAD Studio ソフトウェアのプレリリース版に基づいています。製品のGAリリースまで、機能はコミットされません。

Delphi言語とそのコンパイラの改良点に加え、RAD Studio 13リリースでは、Object Pascal言語に条件演算子(または三項演算子)初めて導入されます。これは、お客様から長年にわたり最もご要望の多かった言語機能強化の一つであり、この機能は現在のGanymedeベータ版でテスト用にご利用いただけます。

Delphi には、新しい形式の If キーワードを使用した三項演算子が追加されました

三項演算子は、条件と2つの可能な値を持ち、if 文のように動作する演算子です。他の多くのプログラミング言語では、三項演算子は ?: という構文で表されます。 Delphi では、使い慣れた Pascal 指向の構文を可能な限り維持したいと考え、if 記号を演算子として使用することにしました。つまり、if は、ソースコード内の位置に応じて、文または演算子を示すために使用できるようになりました。

これは、単純な代入式の 2 つのバージョンの例です。1 つ目は従来の if 文 に基づくもので、2 つ目は if 演算子 に基づくものです。

重要な違いは、if 演算子が、以下のように任意の式の一部として使用できることです。

ここでは、RAD Studio 13 ベータ版を使用して、64 ビット版 RAD Studio IDE のエディタでこのコードを確認できます。

conditionaloperator1

 

RAD Studio 13 エディタ(IDE の 64 ビット版)における if 演算子の動作

Delphi の三項演算子における互換性のルールとは何ですか?

2つの部分式の型間の一貫性については、特定のルールがあります。つまり、それらは同じ型、または直接代入可能な型である必要があります。そうでない場合、以下の例のようにコンパイラエラーが発生します。

[dcc64 エラー] Unit1.pas(46): E2010 'string' と 'Integer' には互換性がありません

conditionaloperator2

 

if 演算子の非互換性エラーの例

ベータ版ドキュメントには、新しい if 式で使用できるさまざまな type の組み合わせと、それぞれの組み合わせにおける式の結果の型を記載した非常に長い表があります。数ページにわたる内容であり、ここで紹介するには詳細すぎる内容であるため、ここでは割愛します。

Delphi の三項演算子の優先順位は?

式内で if-then-else 演算子を使用する場合、他の演算(加算など)の方が優先順位が高く、予期しないエラーが発生する可能性があることに注意してください。優先順位の低いブール演算子を使用する場合と同様に、括弧を追加してください。次のコードを見てみましょう:

Left が 100 未満の場合は、出力はどうなりますか? “Small” でしょうか、それとも “SmallNice” でしょうか?前者です。+ の方が優先度が高いため、次のようになります。

常に追加の単語を追加したい場合は、次のように記述します。

RAD Studio 13 では、Delphi 言語に数多くの新機能と最新化が導入されます

これは RAD Studio 13 における Delphi 言語への唯一の変更点ではありませんが、今回導入する言語変更の中でも最も顕著で、多くの要望の多かった変更点の一つです。他にも新しい演算子や、新規および拡張されたコンパイラディレクティブが追加されます。全体として、Delphi 13(RAD Studio 13 の一部)は、Delphi Object Pascal 言語の進化にとって非常に重要なリリースとなるでしょう。ご期待ください!

このブログ記事は、RAD Studio ソフトウェアのプレリリース版に基づいています。製品のGAリリースまで、機能はコミットされません。


RAD Studio ロゴ

 

ぜひ RAD Studio の無料トライアル版を今すぐダウンロードして、Windows、macOS、Linux、iOS、Android で動作するクロスプラットフォームアプリを単一のコードベースから作成できる、最も高速で簡単、そして効率的な方法である理由を実感してください。

 

See What's Coming in RAD Studio 13 Florence The AI Codecamp: Learn, Code, Create

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES