Swiftの勉強 第14回 辞書 Dictionary

swift

[amazonjs asin=”4800711487″ locale=”JP” tmpl=”Small” title=”詳細! Swift 3 iPhoneアプリ開発 入門ノート Swift3 + Xcode 8対応”]

辞書を作る

配列は複数個の値をインデックス番号で管理するが、Dictionary(辞書)はキーと値をペアにして、複数個のアイテムを管理する

辞書を作る

辞書は配列と似ているが、1つの要素がキーと値のペアになっています。
配列と違い要素の並びは関係なく、順番を示すインデックス番号はありません。
キーはすべてが同じタイプであり、重複しないユニークなものである必要があります。
letで定義した辞書は要素の追加や削除、変更ができません。varで宣言した辞書は要素の追加や削除、値の変更が可能です。
辞書の書式
let 辞書名 = [キー1:値1, キー2:値2, キー3:値3]
var 辞書名 = [キー1:値1, キー2:値2, キー3:値3]

let sizeTable = ["S":47, "M":52, "L":55]
let pointDic = ["p1":(10,20), "p2":(30,30), "p3":(20,40)]

値の型を限定した辞書を作る

書式
let 辞書名:[キーの型:値の型]
var 辞書名:[キーの型:値の型]

let sizeTable[String:Int] = ["S":47, "M":52, "L":55]
let pointDic[String:(Int,Int)] = ["p1":(10,20), "p2":(30,30), "p3":(20,40)]
var theUser:[String:Anyobject]
theUser = ["名前":"児島", "年齢", 35, "得点":[67,82]]

辞書にはDictionary<キーの型,キーの値>の書式もあります。

let sizeTable:Dictionary = ["S":47, "M":52, "L":55]
let pointDic:Dictionary
pointDic = ["p1":(10,20), "p2":(30,30), "p3":(20,40)]

空の辞書

型を指定して辞書を宣言すれば、[:]を設定して空の辞書を作ることができる。

var sizeTable:[String:Int] = [:]
var theUser:[String:String]
theUser = [:]

値が空の辞書は、次の書式で直接作ることもできる。
書式
[キーの型:値の型]()
Dictionary<キーの型,値の型>()

var sizeTable = [String:Int]()
var theUser = Dictionary<String, String>()

//辞書が空か調べる
let theDic:[String:Int] = [:]
if theDic.isEmpty {
   print("theDicは空の辞書です。")
}
//要素の個数を求める
let aDic = ["a":333, "b":444, "c":999]
print(aDic.count)
//結果
3

要素をタプルで作る

Dictionaryクラスの1つの要素は(キー、値)のタプル形式で扱うことができる。イニシャライザにdictionaryLiteralオプションを付けると要素をタプル形式で埋め込めます。

let a = ("A", 1)
let b = ("B", 2)
let c = ("C", 3)
let abcDic = Dictionary(dictionaryLiteral: a,b,c)
print(abcDic)

//結果
["C": 3, "B": 2, "A": 1]

辞書から値を取り出す

辞書の値にアクセスする

辞書の値を取り出すには、辞書[キー]のようにキーを使って参照する。

var members = ["東京":15, "大阪":13, "北海道":9]
let tokyoValue = members["東京"]

取り出そうとしたキーが存在しないかもしれない
 辞書から値を取り出そうとしたとき、指定したキーが辞書に存在しないかもしれません。その場合の結果は、値がないことを示すnilが帰ってきます。例えば、members[“京都”]は存在しないので値にnilになります。
Swiftでは、このようなnilかもしれない値をオプショナルバリュー(Optional Value)と呼びます。
members[“東京”]をprint()で出力すると、Optional(15)と書き出されます。これがオプショナルバリューであることを示しています。

値を変更する

辞書の値を変更するには、辞書[キー]=値のようにキーを指して値を変更する。

var members = ["東京":15, "大阪":12, "北海道":9]

members["大阪"] = 27
print(members)

//結果
["大阪":27, "東京":15, "北海道":9]

更新された値を知る

辞書の複製

辞書からすべての要素を取り出す

辞書の要素の追加と削除

要素を追加する

要素を削除する

すべての要素を削除する

タイトルとURLをコピーしました