【Swift】データ型と変数の種類と宣言方法(Swift 2.1、XCode 7.2)
Swiftでよく使われるデータ型は以下になる。
型名 | 説明 | |
---|---|---|
1 | Int | 整数 |
2 | UInt | 符号の無い整数 |
3 | Float | 浮動小数点数(有効桁数は約7桁) |
4 | Double | 浮動小数点数(有効桁数は約15桁) |
5 | Bool | true(真) またはfalse(偽)だけが指定可能 |
6 | String | 文字列 |
7 | Character | 1文字 |
8 | UnicodeScalar | 文字コード(Unicode) |
データの型は、変数または定数を宣言するときに決定される。
「変数」とは、途中で値を変更することができるデータで、下図のように「var 変数名 = 値」で宣言する。
この宣言ではデータ型を指定していないので、値をもとにシステムが型を自動で判別する。このとき、UIntよりもInt、FloatよりもDoubleが優先される。例えば、test2はUIntもあり得るがIntになる。
1 2 3 4 5 6 |
var test1 = -10 //Int型になる var test2 = 5 //Int型になる var test3 = 2.3 //Double型になる var test4 = true //Bool型になる var test5 = "今日も1日頑張りましょう" //String型になる |
「var 変数名:データ型 = 値」のように宣言すると、明示的に型を指定できる。先ほどのtest2はUIntになった。
1 2 3 4 5 6 |
var test1:Int = -10 //Int型になる var test2:UInt = 5 //UInt型になる var test3:Float = 2.3 //Float型になる var test4:Bool = true //Bool型になる var test5:String = "今日も1日頑張りましょう" //String型になる |
「定数」とは、途中で値を変更することが出来ないデータのことをいい、下図のように「let 定数名 = 値」で宣言する。変数の場合と同じように、データ型を指定しなければシステムが型を自動判別する。
1 2 3 4 5 6 |
let test1 = -10 //Int型になる let test2 = 5 //Int型になる let test3 = 2.3 //Double型になる let test4 = true //Bool型になる let test5 = "今日も1日頑張りましょう" //String型になる |
ただし、途中で値を変更しないデータを変数として宣言しても問題なく動作する。定数で宣言する利点は、「このデータはプログラムの途中で変更されない」ことを保証することで、ソースコードが読みやすくなったり、誤った使い方を抑止できることにある。
Swiftでは宣言したデータ型は厳格に扱われる。例えば、下図のように、Intで宣言した変数に文字列を設定しようとしたり、StringとIntの変数を結合しようとするとエラーが発生する。
1 2 3 4 5 6 7 8 9 |
//Intに文字列を代入しようとしてエラー var test1 = 10 //Int test1 = "今日も1日頑張りましょう"` //StringとIntを結合しようとしてエラー var test2 = "あなたの身長は" //String var test3 = 170 //Int print(test2 + test3) |
型の異なるデータで処理をしたい場合は、「データ型(変数名)」のように記述することで型を変換させる。これをキャストという。なお、Swiftには他の言語であるような自動型変換の機能は無い。
1 2 3 4 5 |
//「あなたの身長は170」が表示される var test2:String = "あなたの身長は" var test3:Int = 170 print(test2 + String(test3)) |