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

Delphi言語: 文字列リテラルのモダナイゼーション

rad12betastringliterals

他の多くのプログラミング言語と同様に、Delphi(Object Pascal)言語でも、開発者は文字列リテラル、つまりコードに直接記述された文字列値を使用できます。文字列リテラルは、常に推奨されるわけではありませんが、非常に一般的です。 例えば、リソース文字列は、メモリ管理や文字列の翻訳サポートなどの面で有利であるため、リソース文字列を使用することをお勧めします。

Delphiの文字列リテラルは、初期からTurbo Pascalの文字列型と関連づけられており、現在では「短い文字列」と呼ばれている型です。

短い文字列は最大255文字で、静的配列として直接割り当てられます。Delphiでは、Delphi 2から動的な割り当てが可能な「長い文字列」が導入されました。

当初、長い文字列はAnsiベースでしたが、Delphi 2009以降はUnicodeベースに変更されています。ただし、文字列リテラルの仕様は初期から変更されておらず、短い文字列型に限定され、最大255文字です。

Delphi(およびRAD Studio)の12.0バージョンでは、Delphiコンパイラが文字列リテラルを処理する方法に関して非常に重要な機能拡張が加えられています。

長い文字列リテラル

文字列リテラルの1つ目の機能拡張として、Delphi 12.0以降のリリースでは、255文字以上の文字列リテラルを使用できるようになります。コンパイラには特に制限はありません。ただし、リテラル文字列の長さは、1行あたり4000文字というエディタの制限によって、これまで通りの制約を受ける可能性があります。Delphiの構文に変更はなく、単純に255文字より長いリテラル文字列を指定することができます。

下図は、エディタ内で600文字以上の文字列を定義している例です。

120 strings 1

マルチライン(複数行)文字列

文字列リテラルの2つ目の機能拡張として、Delphi 12ではマルチライン(複数行)文字列がサポートされます。複数行文字列は、従来の構文とは別のルールで実装されており、この構文を定義する場合は三重引用符(’’’)で区切る必要があります。

さらに複数行文字列には、以下のようないくつかの構文ルールが設けられています。

  • 三重引用符(’’’)と改行で始まる(同一行の三重引用符の後は何も定義しない)
  • 複数行のソースコードファイルを含めることが可能(制限なし)
  • 構文を閉じるために三重引用符 (’’’)で終わる (三重引用符の前には何も定義しない)

従来の構文と比較して重要なポイントは、行を +記号を使用して単一行の文字列に連結する必要がなくなったことです。

下図は、複数行の文字列リテラルの使用例です。

120 strings 2

RAD Studio 12.0 ベータを試すには?

このブログで紹介いたしました文字列リテラルの機能は、RAD Studio 12ベータ(Yukon)で実装されており、有効なアップデートサブスクリプションをお持ちのお客様はベータプログラムへ参加いただくことで試すことができます。 

RAD Studio 12.0 ベータプログラムへの参加を希望されていて、招待メールが見つからない場合は、こちらのお問い合わせ先へ以下の情報をご連絡ください。

  • 氏名
  • 会社名(個人の場合は不要)
  • e-mailアドレス
  • 製品のライセンス(シリアル番号)

有効なアップデートサブスクリプションをお持ちかどうか確認の上、後日 RAD Studio 12.0 ベータプログラムへの参加に関するご案内をさせていただきます。

※免責事項:このブログ記事で説明しているRAD Studioの将来のバージョンにおける新機能や改善点は、いずれも開発が完了しGA版がリリースされるまでコミットされません。


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