変数の使い方

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ビット整数 -2^{15}2^{15}-1
Int32 32ビット整数 -2^{31}2^{31}-1
Int64 64ビット整数 -2^{63}2^{63}-1
UInt 32(64)ビットのOSなら32(64)ビット 32(64)ビットOSならUInt32(UInt64)
UInt8 8ビット正数 0〜255
UInt16 16ビット正数 0〜2^{15}-1
UInt32 32ビット正数 0〜2^{31}-1
UInt64 64ビット正数 0〜2^{63}-1

実数型

実数型には主にDoubleとFloatが存在します。Doubleの方が精度が高く15桁の精度があります。Floatでは6桁です。一方、DoubleだとメモリをFloatの倍使用します。メモリをとるか計算精度をとるかで選択するといいかと思います。

その他のデータ型

他にも以下のようなデータ型が存在します。

意味
Bool 判定の際に使用する変数で、trueかfalseが入ります。
String 文字列を記憶するための変数です。

著者:安井 真人(やすい まさと)