式に文字列リテラルを使う


文字列リテラルは、引用符で囲まれたテキストです。 エスケープ シーケンスは、式の作成者が文字列リテラル内の文字の競合を解決する助けとなります。開発者の視点で書かれているこの記事は、式内で文字列リテラルを使う方法について説明しています。 特定の文字列リテラル カテゴリの詳細は、下のトピックをクリックし展開してご覧ください。それを再度クリックして、閉じます。


ランタイムに、次の式はは文字列「Hello World」を評価します。

Append("Hello", " ", "World")

引用符で囲まれている各文字列は文字列リテラルです:

  • “Hello”
  • ” ”
  • “World”

文字列を完了するために式の作成者が通常しなければならないことは、開始引用符と終了引用符の間に目的のテキストを入力することだけです。例:

"PureCloud"

作成者が値「He said, “Hi” 」の文字列リテラルを作成したい場合はどうなりますか? 上述のアプローチを取る場合、文字列リテラルを開始引用符、テキスト、終了引用符で構成し、式は次のようになります:

"He said, "Hi""

目的のリテラルは「He said, “Hi”」ですが、文字列リテラルは開始引用符にテキストを続け、その後に終了引用符を続けたものです。上記のテキストを見ると、文字列リテラルは実際には“He said, “ に別のテキストが続いたものです。ただし、ここでは “Hi” という引用符付きテキストをその文字列リテラルの一部にしようとしています。残念ながら、Hi という言葉の前の引用符が実際にはその前のテキストの終了引用符となり、文字列リテラルはそこで終わります。 どうすればこの問題を解決して、このテキストを文字列リテラルの一部にできるでしょうか?エスケープ シーケンスを使用します。


上の例での競合を解決するためには、文字列リテラル内の引用符にエスケープ シーケンスを適用します。この操作により、Architect の式パーサーはこの引用符を終了引用符ではなく、文字列リテラル内のリテラル引用符として取り扱うように指示されます。エスケープ シーケンスはバックスラッシュ (\) で示されます。He said, “Hi” リテラルに次のように適用します:

"He said, \"Hi\""

Architect は、ランタイムにこのテキストを He said, “Hi” 文字列として評価します。

今度は次の例を見てみましょう:Male\Female.この例では、文字列リテラルを式内で使用すると次のようになります:

"Male\\Female"


この表には Architect がエスケープ シーケンスを持つ文字が示されています:

文字 エスケープ シーケンス
引用符 (“) \”
バックスラッシュ (\) \\
タブ \t
改行 \n
キャリッジ リターン \r


以下の例では、文字列リテラルでのエスケープ シーケンスの使い方を示します。

  • 以下の文字列を 1 つの文字列リテラルに収めます:
  • He said, "I like the 24 hour clock because you don't have to deal with AM \ PM settings"

答え

  • "He said, \"I like the 24 hour clock because you don't have to deal with AM \\ PM settings\""

  • この例には、エスケープ シーケンスを必要とする文字がいくつかあります:
  • ""\\.#&."<tab character>"
  • ヒント:引用符から始めて、エスケープ シーケンスが必要な文字に適切なエスケープ シーケンスを付けながら文字列を 1 文字ずつ入力し、最後に終了引用符で閉じます。
  • <tab character> は実際のタブ文字で、 <tab character> というテキストではありません。

答え

  • "\"\"\\\\.#&.\"\t\""