カテゴリ: Swift 更新日: 2025/11/09

SwiftのDictionary更新・削除・存在チェックを完全解説!初心者でも使えるupdateValueとremoveValueの使い方

Swift Dictionary 更新・削除・存在チェック(updateValue, removeValue)
Swift Dictionary 更新・削除・存在チェック(updateValue, removeValue)

先生と生徒の会話形式で理解しよう

生徒

「SwiftのDictionaryで、あとから値を変えたり消したりする方法ってありますか?」

先生

「はい、Dictionary(連想配列)ではupdateValueremoveValueを使うことで、値の更新や削除ができますよ。」

生徒

「どうやって使えばいいか、簡単な例で教えてもらえますか?」

先生

「もちろんです!初心者の方でもわかりやすいように、一緒に見ていきましょう。」

1. Dictionaryとは?簡単におさらい

1. Dictionaryとは?簡単におさらい
1. Dictionaryとは?簡単におさらい

SwiftのDictionary(ディクショナリ)は、「キー」と「値」のペアでデータを管理するコレクション型です。名前と年齢のセットや、商品コードと価格など、対応関係があるデータの管理に最適です。

2. updateValueメソッドで値を更新する

2. updateValueメソッドで値を更新する
2. updateValueメソッドで値を更新する

すでにあるキーの値を変更したいときはupdateValue(_:forKey:)メソッドを使います。新しい値を指定して、対応するキーの値を上書きできます。


var scores = ["国語": 80, "数学": 90, "英語": 70]
let oldValue = scores.updateValue(95, forKey: "数学")
print(scores)
print("前の値: \(oldValue ?? 0)")

["国語": 80, "数学": 95, "英語": 70]
前の値: 90

updateValueは、変更前の値を戻り値として返してくれるのが特徴です。もしそのキーが存在しなければnilが返ってきます。

3. キーが存在しない場合は新しく追加される

3. キーが存在しない場合は新しく追加される
3. キーが存在しない場合は新しく追加される

updateValueは、新しいキーに対しても使用できます。その場合、自動的にDictionaryに追加されます。


scores.updateValue(85, forKey: "理科")
print(scores)

["国語": 80, "数学": 95, "英語": 70, "理科": 85]

このようにupdateValueは、更新と追加の両方に使える便利なメソッドです。

4. removeValueメソッドで値を削除する

4. removeValueメソッドで値を削除する
4. removeValueメソッドで値を削除する

Dictionaryから特定のキーとその値を削除したい場合には、removeValue(forKey:)を使います。


let removed = scores.removeValue(forKey: "英語")
print(scores)
print("削除された値: \(removed ?? 0)")

["国語": 80, "数学": 95, "理科": 85]
削除された値: 70

こちらも削除された値を戻り値で返してくれるので、ログを取ったりチェックするのに便利です。

5. removeValueと代入による削除の違い

5. removeValueと代入による削除の違い
5. removeValueと代入による削除の違い

Dictionaryでは、nilを代入することでもキーと値を削除できます。removeValueとの違いは、戻り値がない点です。


scores["国語"] = nil
print(scores)

["数学": 95, "理科": 85]

nil代入の方が簡潔ですが、削除された値を取得できないため、ログや条件チェックにはremoveValueの方が向いています。

6. キーが存在するか確認するには?

6. キーが存在するか確認するには?
6. キーが存在するか確認するには?

あるキーがDictionaryに存在するかをチェックしたいときは、if letcontainsを使います。


if let math = scores["数学"] {
    print("数学のスコアは \(math) 点です")
} else {
    print("数学のデータはありません")
}

数学のスコアは 95 点です

if letは、Optional(値があるかもしれない型)を安全に取り扱う書き方です。

7. contains(where:)でキーの存在を確認する方法

7. contains(where:)でキーの存在を確認する方法
7. contains(where:)でキーの存在を確認する方法

少し応用ですが、contains(where:)を使えば、条件に合うキーや値の存在チェックも可能です。


let hasMath = scores.keys.contains("数学")
print("数学のデータがあるか?: \(hasMath)")

数学のデータがあるか?: true

keys.contains()を使えば、特定のキーが存在するかをBool(true/false)で取得できます。

8. 実用サンプル:商品と在庫数を管理する

8. 実用サンプル:商品と在庫数を管理する
8. 実用サンプル:商品と在庫数を管理する

Dictionaryを使って商品名と在庫数を管理し、追加・更新・削除・確認を行う簡単なプログラムを紹介します。


var stock: [String: Int] = [
    "りんご": 5,
    "バナナ": 3,
    "みかん": 8
]

// 商品を追加
stock.updateValue(10, forKey: "ぶどう")

// 商品の在庫を更新
stock.updateValue(6, forKey: "バナナ")

// 商品の削除
stock.removeValue(forKey: "みかん")

// 商品が存在するかチェック
if let count = stock["りんご"] {
    print("りんごはあと \(count) 個あります")
}

りんごはあと 5 個あります

このように、updateValueremoveValueを活用することで、在庫管理や出席確認、設定値の変更など、さまざまな場面に応用できます。

関連記事:
カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Kotlin・Go・Swift記事の人気No3
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Kotlin・Go・Swift記事の人気No4
Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう
No.5
Kotlin・Go・Swift記事の人気No5
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinのコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.8
Kotlin・Go・Swift記事の人気No8
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎