変数の使い方
2015年2月18日:Swift
Swiftでは変数の使い方がC言語やCocoaと違います。ここでは、はじめにSwiftにおける命令のかき方について説明します。そして、Swiftにおける変数の扱い方(宣言の方法や型変換の方法)について解説します。
「;」がいらない
変数の説明に入るためにSwiftの命令文のかき方について解説します。C言語やCocoaでは「命令;」というように一つの命令の後には必ず「;」をつけていました。しかし、Swiftでは「;」があってもなくても問題ありません。例えば
命令1; 命令2; 命令3;
でもいいですし、
命令1 命令2 命令3
でもいいです。ただし、一行に複数の命令をかきたい場合は「;」が必要となります。例えば以下のように記述してもかまいません。
命令1;命令2;命令3
コメントのかき方
コードにおけるコメントの書き方はC言語と同じでいかのようにします。
// 一行でコメント /* 囲んだ部分をコメント */
「//」を使用すると、「//」の後の行がコメントになります。「/*」と「*/」の場合、これらに囲まれた場所がコメントになります。この場合、複数行にわけてコメントすることが可能になります。
/* コメント1 コメント2 コメント3 */
varとlet
Swiftで使用される変数はvarとletで宣言できます。varは「variable(変数)」の略で、値が変わりうるデータ型をあらわします。一方、letは英語の「let(…とする)」で、値が変わらないデータ型をあらわします。letはC言語でいうconstと似たような感じです。円周率など値が変わらないものはletで宣言した型に入れます(すべてvarにしても問題はないが)。
データの型は自動で解釈される
varとletしかないと整数型・実数型などを区別できなくて困ってしまいます。例えば、
var a a=0 a="Hello"
としてもいいのかという疑問が生じます。実はこれではエラーになります。宣言された変数にはきちんと整数型とかが宣言の段階で決まっているのです。どのように宣言で決めるかというと
var a=1
のようにはじめに書くことで型が決定されます。この場合は変数aが整数型Intになります。あと、
型の名前はUnicodeが使用可能です。
そのため、日本語はもちろん、顔文字も使用可能です。
自分で実数型をきちんと宣言したい場合
コンピュータ側に宣言を規定するのではなく、自分で型宣言をきちんとしたい人もいると思います。そのほうがコードを見た際にデータ型が理解しやすいというメリットがあります(コードが冗長になるというデメリットもありますが)。自分で宣言したい場合は
var a:Double=1
のように「:」の後にデータ型をかきます。この場合、aは実数型になります。それと
var a
とすると型がわからずエラーになりますが、
var a:Double
ならエラーになりません。
型変換
整数を文字に変換したいなど型変換が必要な場合が多いと思います。そのような場合は
型の名前(変数)
で型変換できます。たとえば、以下のように使用できます。
var str="a=" var a=1 var result=str+String(a)
とすれば、resultが「a=1」になります。
文字への変換にはコードが見やすくなるように「\(変数)」という方法が存在します。たとえば、以下のようにプログラムできます。
var a=1 var result="a=\(a)"
この場合、resultは「a=1」となります。以下のようにコーディングすることも可能です。
var a=1 var b=2 var result="a+b=\(a+b)"
この場合、resultが「a+b=3」となります。
変数のメソッド
SwiftではC言語と異なり、変数はオブジェクトになります。そのため、メソッドが使えます。例えば、型の最大値や最小値を使用したければ、
var MaxInt=Int8.max var MinInt=Int8.min
というメソッドが使用できます。この場合、8ビットの整数型なので、「MaxInt=127」で「MinInt=-128」となります。以下に変数のメソッドについてまとめます。
文法 | 説明 |
max | 型の最大値を出力 |
min | 型の最小値を出力 |
allZeros | すべてが0の値を出力 |
型の種類
Swiftで使用される型の種類はいくつか存在します。基本的にObjective-Cと同じです。このSwiftの変数型について以下にまとめます。
整数型
データサイズや正や負によって整数型にはいくつか存在します。
型 | 意味 | 範囲 |
Int | 32(64)ビットのOSなら32(64)ビット | 32(64)ビットOSならInt32(Int64) |
Int8 | 8ビット整数 | -128〜127 |
Int16 | 16ビット整数 | |
Int32 | 32ビット整数 | |
Int64 | 64ビット整数 | |
UInt | 32(64)ビットのOSなら32(64)ビット | 32(64)ビットOSならUInt32(UInt64) |
UInt8 | 8ビット正数 | 0〜255 |
UInt16 | 16ビット正数 | 0〜 |
UInt32 | 32ビット正数 | 0〜 |
UInt64 | 64ビット正数 | 0〜 |
実数型
実数型には主にDoubleとFloatが存在します。Doubleの方が精度が高く15桁の精度があります。Floatでは6桁です。一方、DoubleだとメモリをFloatの倍使用します。メモリをとるか計算精度をとるかで選択するといいかと思います。
その他のデータ型
他にも以下のようなデータ型が存在します。
型 | 意味 |
Bool | 判定の際に使用する変数で、trueかfalseが入ります。 |
String | 文字列を記憶するための変数です。 |
著者:安井 真人(やすい まさと)
@yasui_masatoさんをフォロー