string型とは
文字列型(= string型)は、テキストを表すために使用される文字(= char型)のシーケンシャルコレクションです。.NETのchar型はUTF-16コードに対応しています。
string型は読み取り専用の型で、再代入が基本的にはできません。代入操作をした場合、実際には新しいstring型が再生成されています(immutable)。 最大サイズは2GBで、およそ10億文字までとなっています。
string型は 引用符(") で囲んで定義します。また \ を使用して、特定の特殊文字をエンコードします。
以下に簡単なサンプルを示します。
エスケープシーケンス
F#では、特定の特殊な文字を表現するために、エスケープシーケンスを利用します。エスケープシーケンスは \ と文字を組み合わせで表されます。
以下が、エスケープシーケンスの一覧となります。
文字 | エスケープシーケンス |
---|---|
バックスペース | \b |
改行 | \n |
キャリッジリターン | \r |
タブ | \t |
円記号(バックスラッシュ) | \\ |
引用符(") | \" |
アポストロフィ | \' |
Unicode 文字 | \uXXXX または \UXXXX (Xは16進数の数字) |
逐語的文字列
引用符(")の前に @記号 を記述することで逐語的文字列(= Verbatim string)とすることができます。逐語的文字列の中ではエスケープシーケンスは無視され、表記したとおりに文字列解釈されます。ただし、引用符(")のみ、2つ記述する(= 2重引用符にする)必要があります。
さらに、引用符(")を3つつなげた "3重引用符" で文字列リテラルを作成することもできます。この場合、引用符(")を表現するために2重引用符を記述する必要すらなくなります。
以下は簡単なサンプルとなります。
文字列演算子
2つ以上の文字列リテラルを連結することもできます。その際に利用するのが + 演算子です。 足し算の要領で複数の文字列を連結することができます。