About Strings and Escape Sequences - Japanese Only
みなさまどうも。
さて、続きまして『文字列』(もじれつ)とか『エスケープシーケンス』とかについてやっていきましょう。ちょっと先の記事で『データ型』というものが出てくるのですが、それの下準備的な内容になりますね。
『文字列』は英語で『String』と表記されます。
というわけでまずは『文字列』からです。Swiftに限らず、プログラミングの世界では通常の文字の集まりのことを『文字列』といいます。
前の記事でやった以下のサンプルをちょっと再度確認してみましょう。
print("Hello world")
これは「Hello world」という『文字列』をデバッグエリアに出力するプログラムですが、ちょいと『()』の中に注目してみます。なにやら「"Hello world"」って感じで『"』で囲われていますね。
このように文字を『文字列』としてコンピューターに扱わせる場合、Swiftでは『"』(ダブルクォーテーション)で文字を囲ってあげる必要があります。
例えば先程のプログラムから『"』を抜くとエラーで動かなくなります。ここ間違えないように気をつけて下さい。
print(Hello world) // エラーです。
そんでもって日本語とかも『文字列』にできちゃいます。
print("こんにちは、世界。") // 日本語もOKです。
こんな感じで大体の文字は『文字列』として扱わせることができるのですが、ちょっと例外があるので紹介しておきます。
まず『"』を文字列として扱いたい、となった場合はこれまでの流れだとこうなりますよね。『"』が3つ連続してる感じです。
print(""")
これ、エラーになっちゃうので注意して下さい。
他のプログラム言語でも言えることですが、『"』を『"』で囲うことはできません。
これは『文字列』をくくるために使ってる『"』なのか、ただの文字としての『"』なのか、コンピューター側で上手く判断できないからこんな動きになっちゃいます。
「じゃあ『"』を普通の文字みたいな扱いにしたいときはどうするのー?」ってなりますよね。そんな悩めるあなたは『\』(バックスラッシュ)を使用してみましょう。以下のサンプルを見てください。
print("\"")
これを実行させるとこうなります。
"
ちゃんと『文字列』の『"』として出力できてるみたいですね。
こんな感じで『"』の手前に『\』を置いてあげれば何の機能も持たないただの文字の『"』としての扱いになります。
※当記事をWindowsOSで閲覧している場合はバックスラッシュが円マークで表示されてしまっている可能性がありますのでご注意下さい。詳しくはこちらへどうぞ。
逆に『\』を何の機能も持たない『\』にしたい、といった場合は『\\』と記述しちゃえばOKです。こんな感じですね。
print("\\")
『"』とかの特殊な記号の手前に『\』を置いて何の機能も持たないただの文字として扱わせることを「エスケープする」なんて言ったりします。
こちらも現場でよく使用されるので覚えておくようにしましょう。
こんな感じで『\』は『"』のような特殊な機能を持つ記号の機能を無くす機能があります。
(´-`).。oO(言葉にするとなんかごにょごにょしますね...)
さらに特定の文字と組み合わせることで他の表現もできたりしますのでこちらも紹介しておきます。
まずはアルファベットの『n』と組み合わせた場合ですね。『\n』と記述することで改行を表現することができます。
以下のような感じです。
print("あいう\nえお")
これを実行させるとこうなります。
あいう えお
『\n』の部分で改行されてるのが確認できると思います。
その他に『\t』でタブ文字を表現することができます。
print("あいう\tえお")
実行させるとこうなります。
あいう えお
そんでもって今回紹介した『\"』とか『\\』とか『\n』とか『\t』とかのことを『エスケープシーケンス』(エスケープ文字)って呼ばれます。
ちょっとややこしいのですが、『\』はそのままバックスラッシュ、『\』と『"』を組み合わせた『\"』とかが『エスケープシーケンス』になる、といった感じですね。
こちらも良く出てくる言葉なんで覚えておきましょう。
というわけで『文字列』周りの解説は以上になりますね。続いての記事では『数値』について色々とやっていきます。
ではではこの辺で失礼いたします。
This article was written by Sakurama.
Author's beloved small mammal |
桜舞 春人 Sakurama HarutoA Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him. |
If you find any errors or copyright issues, please contact us.