連載
» 2015年04月24日 05時00分 公開

初心者のためのSwiftで始めるプログラミング入門(3):Apple WatchやiPhoneのアプリを作ろう! Playgroundで学ぶSwiftの基礎―変数、定数、型、演算 (3/4)

[諏訪悠紀,アンダースコア]

プログラムの「型」とは

 ここまでのプログラムでは、変数や定数に「りんご」「バナナ」などのような文字列(文字の値)を代入したり、参照したりしていました。プログラムではもちろん、文字列だけを扱うわけではありません。

 例えば、商品の値段には「100」「200」といった「整数」の値を使います。このような値の種類のことを「」と呼びます。

 それでは、Swiftで使う基本的な型を見ていきましょう。

文字列型(String型)

 文字列型は、これまで扱ってきたような文字を扱う型です。Swiftでは「String(ストリング)型」と呼びます。アプリの画面上に表示するメッセージなどに使います。

let メッセージ = "こんにちは"

整数型(Int型)

 整数型は、整数のみを扱う型です。Swiftでは「Int(イント)型」と呼びます。商品の値段やゲームのスコア(点数)などに使います。ちなみに、Intは整数を表す英単語「Integer(インテジャー)」が省略されたものです。

let 価格 = 100

浮動小数点数型(Double型、Float型)

 浮動小数点型は、小数点を含む数を扱う型です。Swiftでは「Double(ダブル)型」「Float(フロート)型」と呼びます(2つの型は入れることのできる最小値・最大値が異なります)。地図の座標(緯度、経度)や温度などのような、小数点が含まれる細かい数に使います。

let 緯度 = 35.697239
let 円周率 = 3.14159

ブーリアン型(Bool型)

 ブーリアン型は、真か偽のどちらかを扱う型で、「フラグ」や「2値」などとも呼びます。Swiftでは「Bool(ブール)型」と呼び、「true」または「false」のどちらかの値しか代入することができません。スイッチのオン/オフのような「2つのうちのどちらか」という状態を表現したいときに使います。ちなみに、Boolは英単語「Boolean(ブーリアン)」が省略されたものです。

let 今日の天気は晴れ = true
let 今日の天気は雨 = false

型を「指定」するには?

 Swiftでは、定数(変数)を宣言するときに必ず型を指定しなければいけません。まずは、次のプログラムを書いてみましょう。

let あいさつ: String = "こんにちは"
定数の宣言時の型の指定

 このように、型を指定するには定数(変数)の名前の後に続けて「: 型の名前」を書きます。上記で紹介した型を使うのであれば、「: Int」や「: Bool」などといったように書きます。

let 所持金: Int = 10000
let 今日の天気は晴れ: Bool = true

値の種類を自動で判断してくれる「型推論」

 さて、ここで一つ疑問が出てきます。なぜ今までは「: String」を書いていないのに、文字列(つまりString型の値)と判断されていたのでしょうか? その理由は、定数(変数)の宣言と同時にString型の値を代入しているからです。

let くだもの = "りんご"

 上記のプログラムでは、定数の宣言と同時に「りんご」という文字列を代入しています。そのため、Playground(Xcode)が「文字列が代入されているから、この定数をおそらくString型として使いたいんだな」と自動で判断してくれます。

型推論

 このように、プログラムの文脈から型を推測してくれる機能のことを「型推論」と言います。型推論は、String型だけではなく、全ての型で有効です。

 型の指定は宣言時のみ可能で、後から変更することはできません。また、型が指定された定数(変数)に対して異なる型の値は代入できません。例えば、次のプログラムはDouble型の変数にString型の値を代入しようとしているため、エラーが発生します。

var 気温 = 24.5
気温 = "24度5分"
型が異なる場合のエラー

 これはつまり、どのような状況でも定数(変数)は宣言されたときに決まった型として扱われるということです。

「\( )」で文字列に値を混ぜる

 いくつかの型を見てきましたが、これらの型の値は文字列に混ぜて、1つの文字列にすることができます。まずは、次のプログラムを書いてみましょう。

let 値段 = 100
println("イチゴは\(値段)円です")

※「\」は、「alt」キーを押しながら「\」キーを押すと入力できます。

 結果画面を見てみると、「イチゴは100円です」と表示されていると思います。これは、「値段」の値が「イチゴは〜円です」という文字の中に混ざり込んだからです。このように、文字列(つまりString型の値)の中に「\(値)」を含めることで、1つの文字列にすることができます。

コラム「プログラムの中にコメントを書くには?」

 プログラムの中には「コメント」と呼ばれる、メモ書きを含めることができます。コメントはプログラムとして処理されないため、プログラムの間にちょっとしたメモを残すことができます。始めに「//」を書くことで、それ以降に書かれた文章はコメントと見なされます。なお、プログラムが書かれている行の最後にも入れることができます。

// コメントです
let お礼の言葉 = "ありがとう" // コメントです

 上記の方法では一行しか書くことができませんが、「/*」と「*/」で囲うことで、複数の行をコメント化することができます。

/* この行はコメントです。
複数の行でコメントを書くことができます。
この行もコメントです。 */

 特にプログラムの学び始めでは、後でプログラムを見返したときに「ここはどういう意味だっけ?」と忘れてしまうことがあります。そういったときにもすぐに思い出せるように、自分が理解できる文章でコメントを残しておくといいでしょう。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。