カテゴリ: Swift 更新日: 2025/12/19

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を活用することで、在庫管理や出席確認、設定値の変更など、さまざまな場面に応用できます。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

SwiftのDictionary操作を一通り理解しよう

ここまで、SwiftのDictionaryにおける値の更新、削除、存在チェックについて詳しく学んできました。Dictionaryは「キー」と「値」をセットで管理できる非常に便利なコレクション型であり、アプリ開発や業務ロジックの中で頻繁に利用されます。特に、設定情報の管理、スコアや在庫数の管理、ユーザー情報の保持など、現実のデータ構造と相性が良いのが特徴です。

updateValueは、指定したキーに対応する値を安全に更新できるだけでなく、変更前の値を戻り値として受け取れる点が大きなメリットです。この性質を理解しておくことで、「以前の状態を記録したい」「変更があったかどうかを判定したい」といった処理を簡単に実装できます。また、キーが存在しない場合は自動的に追加されるため、更新と追加を同じ書き方で扱える点も、Swiftらしい分かりやすさと言えるでしょう。

削除処理と存在チェックの考え方

Dictionaryから値を削除する方法としては、removeValueを使う方法と、nilを代入する方法の二つがありました。removeValueは削除された値を取得できるため、ログ出力や条件分岐に向いています。一方で、単純に不要なデータを消したいだけであれば、nil代入による削除が簡潔です。どちらを使うかは、処理の目的に応じて選ぶことが大切です。

また、キーの存在チェックはDictionary操作において非常に重要です。if letを使った書き方は、Optionalを安全に扱えるため、Swift初心者の方には特に身につけてほしい基本構文です。さらに、keys.containsを使えば、条件判定をシンプルに書くこともできます。これらを組み合わせることで、エラーを防ぎつつ、読みやすいコードを書くことができます。

まとめとしてのサンプルプログラム

最後に、Dictionaryの更新、削除、存在チェックを一通り確認できるサンプルプログラムを見てみましょう。これまで学んだ内容を一つにまとめた例です。


var settings: [String: String] = [
    "theme": "light",
    "language": "ja"
]

// 設定を更新
let oldTheme = settings.updateValue("dark", forKey: "theme")

// 新しい設定を追加
settings.updateValue("on", forKey: "notification")

// 設定を削除
let removedLang = settings.removeValue(forKey: "language")

// 設定の存在チェック
if let theme = settings["theme"] {
    print("現在のテーマは \(theme) です")
}

このようにDictionaryを正しく操作できるようになると、アプリの状態管理やデータ更新処理が格段に書きやすくなります。SwiftのDictionaryはシンプルでありながら奥が深く、基本を押さえることで応用の幅が大きく広がります。

先生と生徒の振り返り会話

生徒

「Dictionaryって、ただ値を入れるだけじゃなくて、更新や削除の方法もいろいろあるんですね。」

先生

「そうですね。特にupdateValueとremoveValueを使い分けられるようになると、実用的なコードが書けるようになります。」

生徒

「前の値が返ってくるのは便利だと思いました。変更があったかどうかの判断にも使えそうです。」

先生

「その気づきは大事ですね。Dictionaryは状態管理に使われることが多いので、変更前後を意識できると理解が深まります。」

生徒

「if letで存在チェックする書き方も、だいぶ慣れてきました。」

先生

「それなら安心ですね。SwiftのDictionary操作をしっかり身につければ、次はもっと複雑なデータ管理にも挑戦できますよ。」

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのログ出力方法を完全ガイド!LogcatとTimberでトラブルシューティング