2015年10月6日火曜日

【Xcode / Swift入門】配列(Array)とディクショナリーについて

本稿では、配列とディクショナリーについて説明していきます。

配列とは、複数の値を格納できる変数(もしくは定数)のことを言います。Swiftには、値の追加、削除、変更、参照などが可能な関数が既に用意されています。

一方、配列とはちょっと違い、キーと値をセットで保存し、データベースのようにデータ操作が可能な定義/型をディクショナリと言います。数値や文字列をキーにして、値の追加、削除、変更、参照などが可能な型です。

配列の定義

配列の定義には2パターンあります。

1、型を指定する場合
2、型を指定しない場合

配列は”カギ括弧[]”で記述します。
つまり、どちらのパターンも”カギ括弧[]”で囲む必要があります。
例えば、型を指定する1の場合は、変数名の後に型を記述し、型および代入する値の両方をカギ括弧で囲みます。

var 変数名: [Int] = [1,2,3,4,5]

一方、変数の初期値として値を入れておけば、Swiftが勝手に推測してくれるため、型を明示的に指定する必要はありません。そのため、値だけをカギ括弧で囲めば、Swiftはそれを配列として認識します。

var 変数名 = [1,2,3,4,5]
※型を定義する必要なし

実際にplaygroundにて、下記の通り記述してみます。

var str: [String] = ["Hello", "playground"]
var str1 = ["Hello", "playground"]

print(str)
print(str1)

型を宣言せずともswiftが配列の中身を見て、String型と判断してくれていることがわかると思います。


【配列】要素の追加、削除、参照

では、配列を使って要素の追加、削除、参照をしてみたいと思います。実際にPlaygroundを使って、下記を実行してみたいと思います。
・1〜9の数字を持った配列を定義
・10を配列へ追加
・5を表示
・7と10を削除
・2〜4を削除
・結果として、[1,5,6,8,9]と表示させる。

上記を実行するにあたり、配列の操作としてよく使用する関数を説明します。ここでindexという概念を使用します。これは、要素の位置を示す際によく使われる変数で、index=0の場合、先頭の値、index=1の場合は、2番目の値を示します。

・要素の追加
 変数名.append[追加する要素]

・要素の参照
 変数名[Index]

・要素の削除
 変数名.removeAtIndex(index)

末尾の要素を削除
 変数名.removeLast()

・範囲内の要素を削除
 変数名.removeRange(範囲指定)

では、Playgroundを起動し、下記のように記述してみます。
    
//配列の定義
var array = [1,2,3,4,5,6,7,8,9]

//要素の追加
array.append(10)

//要素の参照
array[4]

//要素の削除
array.removeAtIndex(6)

//末尾の要素を削除
array.removeLast()

//範囲内の要素を削除
array.removeRange(1...3)
print(array)

上記を実行すると下記のようになり、要素が追加、削除できていることが確認できると思います。


このようにして、配列への要素の追加、削除、そして参照が可能になります。

ディクショナリーの定義

次にディクショナリの定義について説明します。ディクショナリの定義も配列と同様に型なし、型ありどちらでも記述可能になっています。違いはキーを指定することが可能な点になります。

1、型を指定する場合
var 変数名: Ditionary<キーの型、値の型> = ["キー1": "値1", "キー2": "値2"]
もしくは
var 変数名: [キーの型: 値の型] = ["キー1": "値1", "キー2": "値2"]

2、型を指定しない場合
var 変数名 = ["キー1": "値1", "キー2": "値2"]

こちらも配列と同じく3パターンをplaygroundにて記述したいと思います。
下記のように記述してみます。

var version: Dictionary<String, Double> = ["swift": 1.0, "xcode": 6.0]
var version1: [String: Double] = ["swift": 1.2, "xcode": 6.4]
var version2 = ["swift": 2.0, "xcode": 7.0]

すると、以下のように、キーと値がセットで表示されていることが、わかると思います。



【ディクショナリ】要素の追加、参照、削除

では、ディクショナリを使って要素の追加、参照、削除をしてみたいと思います。
Playgroundに下記のように記述します。

//ディクショナリの定義
var human = ["name": "mosho","age": 5]

//要素の追加
human["country"] = "Japan"
print(human)

//要素の参照(取り出し)
var age = human["age"]
print(age)

//要素の削除
human["age"] = nil
print(human)

要素を追加する場合は、定義した変数名の後ろにカギ括弧を付けキーを指定し、値を代入します。要素を取り出したい場合は、定義した変数の後ろにカギ括弧を付けキーを指定したものを、変数に代入します。削除する場合は、定義した変数の後ろにカギ括弧を付けキーを指定し、nilを代入します。

以下が実行結果になります。"age"のところがオプショナル型になっていますが、ageに!を付与すると消えると思います。



今回は、配列やディクショナリ型の簡単な操作について説明しました。配列やディクショナリはとても重要なので、また別記事にてアプリを作りながら説明したいと思います。

では、次回はクラスと関数について説明したいと思います。




0 件のコメント:

コメントを投稿