辞書型

辞書型とは
  • 辞書のような使い方をするデータ型のこと
  • 辞書型なので「キー」(辞書でいう索引の部分)と「値」があります。
  • 「キー」を指定して値を探し出すことができます。
  • 「キー」と値を最初に結びつけておきます。
  • 辞書型を使用すると値はオプショナル型として扱われるため注意が必要です。
  • 辞書型は配列型と違ってデータの順番が保存されません。

辞書型の型名

辞書型の型名は2種類
  • [キーの型名: 値の型名]
  • Dictionary<キーの型名, 値の型名>
var 変数名: [キーの型名: 値の型名] = [キー:値]
var 変数名: Dictionariy<キーの型名, 値の型名> = [キー:値]

具体例

var grapsSize: [String:Int] = ["S":30, "M":60]
print(grapesSize["S"])
  • grapsSizeで辞書型を宣言しました。
  • 「キー」はString型に設定、値はInt型に設定するので型名は[String:Int]です。
  • 辞書型の[:]の部分、「キー」はS、値は30、「キー」はM、値は60です。
  • print(grapesSize[“S”])は30を指していますが、表示はOptional(30)になります。
  • 辞書型の値はオプショナル型になるため、アンラップしなければいけません。
注目

辞書型の値はオプショナル型になります。

辞書型は存在しないキーを入力できる仕様です。例えば例の場合、”L”はキーとして存在しませんが、”L”を入力したとしてもプログラムはクラッシュしません。このように値が存在しないものを入力する可能性があるということは、値はオプショナル型になります。

print(grapesSize[“S”]!)で強制アンラップできますが、安全のためにnil結合演算子を利用し、値を0にしておきます。print(grapesSize[“S”] ?? 0)を使用します。

辞書型のイニシャライザ(空の辞書型をつくる)

辞書型のイニシャライザ
  • [キーの型名:値の型名]()
  • Dictionary<キーの型名,値の型名>()
var emptyDict = [String:Double]()
print(emptyDict)  
  • emptyDictで空の辞書型を宣言しました。
  • print(emptyDict)で[:]が表示されます。
注目
[:]は空の辞書データという意味です。

型推論を使用して空の辞書型をつくる

var emptyDict2:[String:Double] = [:]

辞書型のプロパティ

isEmpty

  • 配列が空かどうか確認する
  • Bool型

count

  • 配列の要素の数を確認する
  • Int型
var dict:[String:String] = ["117":"時報","119":"消防"]
print(dict.count)
print(dict.isEmpty)
  • print(dict.count)で配列の要素の数を確認します。2が表示されます。
  • print(isEmpty)で配列が空かどうか確認します。falseが返ってきます。
辞書型を利用する辞書型を利用する