0Pricing
Swift Academy · درس

الفهارس الفرعية الافتراضية للقواميس

اقرأ قيم القاموس باستخدام القيم الافتراضية المضمّنة.

الفهارس الفرعية الافتراضية للقواميس درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في 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])

جمع القيم حسب المجموعات

يمكنك تجميع المجاميع لكل فئة في مرور واحد باستخدام الفهرس الفرعي الافتراضي.

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])

الأسئلة الشائعة

هل درس «الفهارس الفرعية الافتراضية للقواميس» مجاني؟

نعم — نص درس «الفهارس الفرعية الافتراضية للقواميس» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «الفهارس الفرعية الافتراضية للقواميس»؟

اقرأ قيم القاموس باستخدام القيم الافتراضية المضمّنة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «الفهارس الفرعية الافتراضية للقواميس»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عامل الدمج مع nil
  2. تسلسل القيم الافتراضية
  3. القيم الافتراضية لمعلمات الدوال
  4. الفهارس الفرعية الافتراضية للقواميس
← العودة إلى Swift Academy