Dictionaryのデフォルトサブスクリプト
組み込みのデフォルト値を使ってDictionaryの値を読み取ります。
「Dictionaryのデフォルトサブスクリプト」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。
辞書検索の結果はオプショナルです
dict[key]でキーを検索すると、キーが存在しない可能性があるため、オプショナルが返されます。このオプショナルには対処が必要です。
let ages = ["Ann": 30]
let bob = ages["Bob"]
print(bob as Any)デフォルト付きサブスクリプト
Swiftにはデフォルト値を指定できるサブスクリプトがあります。dict[key, default: value]と記述すると、キーが存在しない場合にnilではなくデフォルト値が得られます。
let ages = ["Ann": 30]
print(ages["Bob", default: 0])
print(ages["Ann", default: 0])結果は非オプショナルです
通常の検索とは異なり、デフォルト付きサブスクリプトは非オプショナルの値を返すため、アンラップせずにすぐ使えます。
let stock = ["pen": 5]
let pens: Int = stock["pen", default: 0]
print(pens + 1)デフォルト値を使ったカウント
デフォルト付きサブスクリプトは、出現回数のカウントに特に便利です。各キーを0から始め、順に加算していきます。
var counts: [String: Int] = [:]
let words = ["a", "b", "a", "a", "b"]
for word in words {
counts[word, default: 0] += 1
}
print(counts["a", default: 0])
print(counts["b", default: 0])+=が機能する理由
dict[key, default: 0]は新しいキーに対しても実際の値を返すため、+=で安全にその場で変更できます。
var tally: [String: Int] = [:]
tally["x", default: 0] += 5
tally["x", default: 0] += 3
print(tally["x", default: 0])合計のグループ化
デフォルト付きサブスクリプトを使うと、1回の走査でカテゴリごとの合計を蓄積できます。
let sales = [("apple", 3), ("pear", 2), ("apple", 4)]
var totals: [String: Int] = [:]
for (item, amount) in sales {
totals[item, default: 0] += amount
}
print(totals["apple", default: 0])デフォルト値とnil合体の比較
読み取りに関しては、dict[key, default: 0]はdict[key] ?? 0と同等です。ただし、サブスクリプト形式なら値をその場で変更することもできます。
let prices = ["tea": 3]
print(prices["tea"] ?? 0)
print(prices["tea", default: 0])配列値への追加
デフォルト付きサブスクリプトは配列の値にも使えるため、グループ化されたリストを作成できます。
var groups: [String: [Int]] = [:]
groups["even", default: []].append(2)
groups["even", default: []].append(4)
print(groups["even", default: []])デフォルト値を読んでも挿入されません
デフォルト値を使って読み取っても、キーは辞書に追加されません。+=のように値を変更した場合にのみ、キーが保存されます。
var data: [String: Int] = [:]
_ = data["ghost", default: 0]
print(data.count)
data["real", default: 0] += 1
print(data.count)適切なデフォルト値を選ぶ
値の型と操作に合ったデフォルト値を選びます。合計には0、リストには[]、テキストには空文字列を使います。
var notes: [String: String] = [:]
notes["greeting", default: ""] += "Hello"
notes["greeting", default: ""] += " World"
print(notes["greeting", default: ""])カウントと読み取りの組み合わせ
出現頻度マップを作成し、同じデフォルト値を使って読み取ることで、全体を通して非オプショナルのまま扱えます。
var freq: [Character: Int] = [:]
for ch in "banana" {
freq[ch, default: 0] += 1
}
print(freq["a", default: 0])
print(freq["z", default: 0])クイックチェック
デフォルト付きサブスクリプトをテストします。
まとめ:辞書のデフォルト付きサブスクリプト
dict[key, default: value]を使うと、非オプショナルの代替値を読み取ったり、値をその場で変更したりできます。手動でnilを確認せずに、カウント、合計、グループ化を行うのに適しています。
var c: [String: Int] = [:]
for x in ["a", "a", "b"] { c[x, default: 0] += 1 }
print(c["a", default: 0])AI チューターと学ぶ Swift — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 122
- レッスン
- 409
よくある質問
「Dictionaryのデフォルトサブスクリプト」レッスンは無料ですか?
はい。「Dictionaryのデフォルトサブスクリプト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。
「Dictionaryのデフォルトサブスクリプト」で何を学びますか?
組み込みのデフォルト値を使ってDictionaryの値を読み取ります。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Dictionaryのデフォルトサブスクリプト」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- nil合体演算子
- デフォルト値の連鎖
- 関数パラメータのデフォルト値
- Dictionaryのデフォルトサブスクリプト