型について・文字列のString型
型とは
プログラムではデータを扱う際に、種類ごとに分類されます。
このデータの種類のことを、型と言います。
一例として、文字列ならばString型、整数ならばInt型、true(真)/false(偽)の2値を扱うBool型などです。
1 2 3 |
"123"//String型 123 //Int型 true //Bool型 |
型の違う定数・変数にデータを代入することはできませんし、違う型同士のデータは、演算することができません。
例:"123" + 123 を試してみてください。文字列と整数で、別の扱いとなる為足せません。
”123” + true を試してみてください。trueは文字列ではなくBool型なので足せません。
(文字列として扱いたい時は””で括ります。)
以上を踏まえた上で、まずは文字列の型について見てみましょう。
String型
文字列を扱う時、プログラムではStringという型(種類)のデータとして扱います。
1 2 3 4 5 6 7 |
//String型のデータ "おはよう" //型を省略して(型推論)変数に代入 var afternoon = “こんにちは" //型を指定して定数に代入 let night: String night = “こんばんは" |
""で囲まれたデータは、コンピュータ側で自動的にString型だな、と判断されます。
変数 afternoon では、入ってきたデータ(“こんにちは")の種類がコンピュータによって推論され、型:Stringと設定されました。再代入できる変数ですが、この後に文字列以外の値を代入しようとすると、エラーになります。
定数 night ではあらかじめ定数の型をStringに設定しています。
代入を宣言と同時に行わない時は、このように入れるデータの種類(型)を決めておかなければいけません。
空文字
何も表示しない文字列のデータとして空文字があります。
1 |
let emptyStr: String = "" |
データとして「何もない」のではなく、「空の文字列データがある」という事です。
(「何もない」の扱いは後の節nilで解説します。)
文字列の連結
下記のコードを、次のような想定でPlaygroundでコーディングしてみてください。
・変数の宣言・代入部分は、「アプリユーザーが入力フォームに打ち込んだ文字列を取得している」
・print部分は、「アプリの画面に文字を表示させている」
・足し算
1 2 3 |
var weather1 = "晴れ" var weather2 = "雨" print("今日の天気は" + weather1 + "時々" + weather2) |
同じString型同士であれば、足し算して表示することができます。
・別の型データとの連結
1 2 |
var day = 15 print("次の予定日は" + String(day) + "日です。") |
整数値はInt型のデータなので、型の違うモノ同士は足し算ができません。
そのため、型をString型に変換する必要があります。
String(変換したいデータ)とします。
※あくまで day の変数はその後もInt型のままであり、[String(day)]までがString型として扱われます。その後のデータもString型として扱いたい場合は、
1 2 3 |
var day = 15 var newDay = String(day) print("次の予定日は" + newDay + "日です。") |
以上のように、新しく定数や変数に入れ直しましょう。
・文字列の中に組み込む
1 2 3 4 5 |
var weather1 = "晴れ" var weather2 = "雨" print("今日の天気は\(weather1)時々\(weather2)") var day = 15 print("次の予定日は\(day)日です。") |
半角バックスラッシュ\(定数・変数)で、足し算や変換をせずとも、””で括った文字列の中に定数・変数を埋め込むことができます。
バックスラッシュは、「option」キーと「\」キーの同時押しで打ち込むことができます。
(日本語JISキーボードの場合)
読みやすさ、状況に合わせて使い分けましょう。