簡単になった文法
SwiftでもObjective-Cと同様の文法でプログラムを記述できます。SwiftではObjective-Cよりも少し簡略化された構文を利用することができます。Swiftでよく利用される構文と追加された便利な機能を以下に示します。
定数の定義
Swiftでは定数の定義も簡単になりました。連載第1回で説明した変数を定義する際に使う「var」を「let」にするだけで定数を定義できます。ソースコードを読む際には、letで定義されたものがあれば、その値はそれ以降変更されることがないと判断できます。
// 定数の定義 let lang:String = "Swift"
定数を定義する際には、必ず値も必要です。変数と違って値をもたせずに定義だけにしておく、ということはできません。
日本語や絵文字での変数の定義
世界で使用されている全ての文字を扱えるように設計された文字コードの規格にUnicodeがあります。Swiftで使われる文字は、このUnicodeに準拠するように設計されています。従って、日本語や中国語に代表されるマルチバイト文字を変数名にすることができ、プログラムの初学者にもわかりやすくコーディングを行うことができます。
var 都道府県:String = "東京都" println(都道府県) // 結果:「東京都」を出力
絵文字を扱う場合には、Mac自体の入力機能を利用します。最初に「システム環境設定」―「キーボード」―「メニューバーにキーボードビューアと文字ビューアを表示」にチェックを入れます。
チェックを入れた後に、メニューバーの入力メニュー内に「文字ビューアを表示」という項目が出現します。「文字ビューアを表示」を選択すると、次のように絵文字を選択できる入力パレットが表示されます。
![絵文字入力パレット](http://cz-cdn.shoeisha.jp/static/images/article/8288/8288_002.gif)
ここで入力したい絵文字を選択すると、Swiftのプログラム内に絵文字を入力できます。絵文字だけでなく、キリル文字やギリシャ文字等も同様に変数名として利用できます。ただし、プログラム内の変数に英数字以外を利用するのは非常に特殊ですので、アプリの管理者や他の開発者に影響が出ないように気をつけて下さい。
配列の扱い
配列はArrayクラスで扱います。Objective-Cと違って、配列の宣言時に不変/可変の意識をする必要はありません。配列を宣言する際の書式は次のとおりです。
var 配列名:Array<型> = Array<型>() var 配列名:[型] = [型]() var 配列名[:Array<型>] = 値
型を指定してArrayクラスを初期化して配列を宣言します。「[]」を使って省略した形式で書くことも可能です。変数の宣言と同様に、値を指定して配列を宣言する際には、型を省略することもできます。具体的な利用例は次のとおりです。
// 配列を宣言 var prefs:Array<String> = Array<String>() // 値を追加 prefs.append("北海道") prefs.append("東京都") prefs.append("大阪府") // 配列の要素数を取得 println(prefs.count) // 結果:「東京都」を出力 println(prefs) // 結果:[北海道, 東京都, 大阪府]」を出力 // 1番地に値を追加 prefs.insert("福岡県", atIndex: 1) println(prefs) // 結果:[北海道, 福岡県, 東京都, 大阪府] // 範囲演算子を使って配列を宣言 var nums:[Int] = [Int](1...3) / 配列の宣言と値の代入を同時に行う var countries:Array<String> = ["Japan", "USA", "China"]
Arrayクラスの主なプロパティ/メソッドには次のものがあります。
プロパティ/メソッド名 | 概要 |
---|---|
count | 配列の要素数を参照 |
isEmpty | 配列の要素の有無をtrue/falseで返す |
append(値) | 配列の最後に値を追加 |
insert(値, atIndex:インデックス) | 配列のインデックスに値を挿入 |
removeAtIndex(インデックス) | 配列のインデックスの要素を削除 |
removeLast() | 配列の最後の要素を削除 |
subscript(インデックス) | 配列のインデックスの要素を削除 |
Objective-Cに比べて非常に簡単になりましたが、String型の要素を格納する配列にはString型以外の値を追加できない、という制限があります。この点に気をつけてください。