As an iOS Engineer

iOSエンジニアよるiOSのblog

Swift入門 (3) -変数と定数-

変数定義

今回はSwiftの変数についてです。変数とは値を入れておくことができる入れ物のようなものです。
Swiftの変数には一度代入した値を後から変更できる普通の変数と、一度代入した値を変更できない定数の2種類があります。
後から値が変更できる普通の変数は以下のように宣言します。

var 変数名:型名

型については次回改めて解説しますが、文字列を表すString型や整数を表すInt型などがあります。 それぞれ、以下のように宣言できます。

var hoge:String
var foo:Int

変数の初期化

変数を宣言しただけでは入れ物の中身が空なので使うことができません。
空の変数に値を入れてプログラムで使えるようにすることを初期化といいます。変数の初期化は「=」を使って行います。

f:id:yopipi:20150215211243p:plain

文字列型であるString型の変数は文字列を代入して初期化します。整数型であるInt型の変数は整数値を代入して初期化します。
varで宣言した変数は値を後から変更できますので、一度代入した値を「hoge="def"」のように何度でも上書きすることができます。

また、変数の宣言と初期化は同時に行うことができるので、以下のようにも記述できます。

var hoge:String = "abc"


Swiftには型推論という仕組みが備わっており、代入する値の型が明確な場合は型名の宣言を省略して以下のように記述することもできます。

var hoge = "abc"


つまり、

var hoge:String
hoge = "abc"
var hoge:String = "abc"
var hoge = "abc"

はそれぞれ同じ内容になります。 ただ、無駄な記述を避けるため特に理由がなければ型推論を使った、

var hoge = "abc"

の記述が好ましいでしょう。

値を宣言する際に文字列は「"」で囲って記述しますが、整数はそのまま値を記述します。
そのため、
"1"
は整数の「1」ではなくて文字列の「1」として扱われます。

型に不適切な値を代入しようとするとエラーになります。例えば以下はそれぞれエラーになります。

hoge = 1
foo = "abc"
foo = "1"

また、Swiftでは「1」は整数ですが「1.0」は実数型(FloatまたはDouble)として扱われるので、

foo=1.0


もエラーとして扱われます。 Playgroundに入力してみるとこのような画面になると思います。左端の赤丸の中に「!」マークが表示されていますね。これがエラーの印です。

f:id:yopipi:20150215210705p:plain

「!」マークをクリックすると具体的なエラーの内容が表示されます。

f:id:yopipi:20150215211017p:plain

定数宣言

定数は「var」の代わりに「let」を使って宣言します。

let 変数名:型名 = 値

具体的には、

let foo2:Int = 1

のように記述します。

定数も型推論が有効なため、こちらの記述も有効です。

let foo2 = 1

定数は初期化しないで宣言しようとするとエラーになります。また、定数は後から値を変更することができないため、後から別の値を代入しようとするとエラーになります。

それぞれPlaygroundで試してみるとこのようになります。

f:id:yopipi:20150215213855p:plain

f:id:yopipi:20150215213905p:plain

それでは次回はSwiftの様々な型をご説明します。