言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Swift辞典

  1. トップページ
  2. Swift辞典
  3. 辞書の基本 / 辞書.keys / 辞書.values

辞書の基本 / 辞書.keys / 辞書.values

対応: Swift 1.0(2014)

Swiftの辞書(Dictionary)は、キーと値のペアを格納するコレクションです。キーは一意であり、順序は保証されません。

構文

// 辞書の宣言と初期化
var dict: [String: Int] = ["桐生一馬": 99, "真島吾朗": 95]
var emptyDict = [String: Int]()          // 空の辞書
var emptyDict2: [String: Int] = [:]     // 空の辞書(別記法)

// 要素へのアクセス(Optional を返す)
let value = dict["桐生一馬"]               // Optional(99)

// キー・値の一覧
let keys = dict.keys                    // Keys ビュー
let values = dict.values                // Values ビュー

プロパティ・メソッド一覧

プロパティ / メソッド概要
辞書[key]指定したキーに対応する値を Optional で返します。
辞書.count辞書のペア数を返します。
辞書.isEmpty辞書が空かどうかを Bool で返します。
辞書.keys辞書の全キーを返します。
辞書.values辞書の全値を返します。
辞書[key] = valueキーに値を設定します。nil を代入するとキーを削除します。

サンプルコード

sample_dictionary_basic.swift
// 辞書の作成と基本操作
var levels: [String: Int] = ["桐生一馬": 99, "真島吾朗": 95, "秋山駿": 82]

// 値の取得(Optional)
if let level = levels["桐生一馬"] {
    print("桐生一馬のレベル: \(level)")
}

// キーが存在しない場合はデフォルト値を使用
let niwaLevel = levels["錦山彰", default: 0]
print("錦山彰のレベル: \(niwaLevel)")

// 値の追加・更新
levels["錦山彰"] = 78
levels["桐生一馬"] = 100

// キー・値の列挙
for (name, level) in levels {
    print("\(name): Lv.\(level)")
}

// キーの一覧をソートして表示
let sortedKeys = levels.keys.sorted()
print("キー一覧: \(sortedKeys)")

// 辞書の情報
print("要素数: \(levels.count)")
print("空かどうか: \(levels.isEmpty)")

// キーの存在確認
if levels.keys.contains("真島吾朗") {
    print("真島吾朗 は存在します")
}

概要

Swiftの辞書は『[Key: Value]』という型で宣言します。辞書の要素へのアクセスは Optional を返すため、存在しないキーにアクセスしても安全です。

デフォルト値を使った添字アクセス(『辞書[key, default: 値]』)を使うと、キーが存在しない場合でも安全に値を取得できます。辞書はキーの順序を保証しないため、for-in でのイテレーション順序は毎回異なる場合があります。

辞書の更新・削除については辞書.updateValue() / 辞書の削除 / mapValues()を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。