[iOS 8] Android脳に効く!新言語「Swift」超入門 #1 変数の宣言と型
はじめに
先日、Appleが新しい言語「Swift」を発表しました。今後iOS開発はSwiftでの開発に移行していくことでしょう。そんな中で「Android開発者もSwift読めなくちゃねっ!」ということで、Android開発者になじみのあるJavaと照らし合わせながら新言語Swiftの概要を解説していきたいと思います。
注:本シリーズで言うJavaとは[Java 6]を対象としています
こんな人にオススメです
- Android開発者で新しい言語も出たしiOS開発ちょっとやってみようかなと感じた人
- Java初心者でSwiftに興味がある人
- とりあえずSwiftの雰囲気を感じたい人
とりあえず覚えておくといいこと
Swiftは…
- 文の終わりにセミコロンをつけなくてもいい(つけてもいい)
- 一行に複数の文を書く時は文の終わりにセミコロンをつけて区切る
Swift Code
// セミコロン(;)なくても大丈夫 var str = "HelloSwift" // 一行に複数の文を書く時にはセミコロン(;)が必要 // 実際にはあまり使わないと思いますが覚えておくといいでしょう println(str);println(str)
変数・定数の宣言
まずはじめは、プログラミング言語の最も基本の部分である変数・定数の宣言についてです。
変数・定数についての詳しい説明は必要ないと思いますが、ここでポイントとなるのが「Swiftには型推論がある」ということです。Javaには型推論はありません。型推論を聞いたことがない人はなんだか難しそうに感じるかもしれませんが、決してそんなことはないので順番に見ていきましょう。
変数の宣言
Javaでの変数の宣言は次のようにしていました。
Java Code
String str = "Hello, World"; // 文字列 int numInt = 10; // 整数 double numDouble = 10.5; // 小数
はじめに変数の型を指定して、その後に識別子、値と記述します。
Swiftではどうなるでしょうか。
変数宣言の文法
Swiftで変数の宣言を行うには「今から変数を宣言する」と明示する必要があります。それがvarです。
識別子に続く型は、省略可能です。型を省略した場合は型推論により自動的に変数の型が決まります。
まず、変数を宣言するにはvarを記述します。型推論が可能であれば型の省略ができ、変数の宣言に型は登場しません。明示的に変数の型を指定する時は識別子の後にコロン(:)を付けて型を指定します。
実際にはこのように変数の宣言をします。
Swift Code
var str: String = "Hello, Swift" // String型を指定 // 型推論 var name = "classmethod" // String型 var numInt = 10 // Int型 var numDouble = 10.5 // Double型 // このように宣言するとnumはDouble型として扱われます var num: Double = 20 println( num ) // 20.0
定数の宣言
Javaでの定数の宣言は次のようにしていました。
Java Code
final String STR = "Hello, World"; // 文字列 final int NUM_INT = 10; // 整数 final double NUM_DOUBLE = 10.5; // 小数
考え方は変数の宣言と同じですが、final修飾子がつきます。
Swiftではどうなるでしょうか。
定数宣言の文法
Swiftで定数の宣言を行うには変数の宣言と同じように「今から定数を宣言する」と明示する必要があります。それがletです。型推論の考え方は変数の宣言と同じです。
varと書いていれば変数の宣言、letと書いていれば定数の宣言を意味します。当然ながら、定数には宣言時の初期化後の代入はできません。
実際にはこのように定数の宣言をします。
Swift Code
let str = "Hello, Swift" // String型の定数を宣言 // 再代入はできません let numInt = 10 // Int型 numInt = 20 // コンパイルエラー
CHECK!
Javaでは、定数の識別子を大文字のスネークケースで書くのが一般的ですが、Swiftでは変数と同じくキャメルケースで書くのがいいようです。
データ型
Swiftの主なデータ型を紹介します。Javaと比較すると、多少表現に違いはあるもののどれも見慣れたもので抵抗なく理解できるでしょう。
真偽型
Bool | 2値型。trueまたはfalseどちらかの値をとる |
数値型
符号付き整数型
Int8 | -128〜127 の整数 |
Int16 | -32,768〜32,767 の整数 |
Int32 | -2,147,483,648〜2,147,483,647 の整数 |
Int64 | -9,223,372,036,854,775,808〜9,223,372,036,854,775,807 の整数 |
Int | 32ビット環境ではInt32、64ビット環境ではInt64と同じ範囲の整数値をとる |
符号無し整数型
UInt8 | 0〜255 の整数 |
UInt16 | 0〜65,535 の整数 |
UInt32 | 0〜4,294,967,295 の整数 |
UInt64 | 0〜18,446,744,073,709,551,615 の整数 |
UInt | 32ビット環境ではInt32、64ビット環境ではInt64と同じ範囲の整数値をとる |
浮動小数点
Float | 32ビット浮動小数点。Doubleほどの精度を必要としない場合に使用する |
Double | 64ビット浮動小数点。小数点を扱う場合は主にこちらを使用する |
文字列・文字型
String | Unicode文字を連ねた文字列を格納する可変長文字列型 |
Character | Unicode文字を1文字格納する文字型 |
配列型
Array〈T〉 | Genericsとして定義されているため T の型で縛られる |
Array〈Any〉 | 配列内に複数の型が混在する複合型配列 |
辞書型
Dictionary〈T, S〉 | T 型のキーと S 型の値を持つ連想配列 |
まとめ
今回は、変数・定数の宣言とデータ型についてでした。データ型はもうおなじみといった感じですが、変数・定数については少し違和感を感じるかもしれません。
まずは、varとletさえ覚えておけばいいでしょう。きっとすぐ慣れます。
次回は、Swift最初の難関「Optional」の基礎について書きたいと思います。
バックナンバー
[iOS 8]Android脳に効く!新言語「Swift」超入門 #1 変数の宣言と型
[iOS 8]Android脳に効く!新言語「Swift」超入門 #2 Optional基礎
[iOS 8]Android脳に効く!新言語「Swift」超入門 #3 制御構造
[iOS 8]Android脳に効く!新言語「Swift」超入門 #4 関数とクロージャ
[iOS 8]Android脳に効く!新言語「Swift」超入門 #5 クラスとストラクチャ