أنماط التكرار وقابلية التغيير
تعلّم أنماط التكرار الشائعة على المصفوفات والقواميس والمجموعات، واستخدم الفهارس وenumerated()، وافهم قابلية التغيير مع let مقابل var وأساسيات النسخ عند الكتابة.
أنماط التكرار وقابلية التغيير درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 3 دروس في المجموع.
لماذا التكرار وقابلية التغيير؟
الهدف: التكرار بأمان ووضوح على المجموعات، ومعرفة متى تكون قابلة للتغيير. سنتناول المصفوفات والقواميس والمجموعات والفهارس وenumerated()، بالإضافة إلى let مقابل var.
for-in (Array)
تكرر for-in مباشرةً على العناصر، وهي طريقة بسيطة وواضحة للمصفوفات.
let nums = [10, 20, 30]
for n in nums {
print("value:", n)
}enumerated()
استخدم enumerated() للحصول على أزواج (index, value) أثناء التكرار.
let letters = ["a","b","c"]
for (i, ch) in letters.enumerated() {
print(i, ch) // 0 a, 1 b, 2 c
}القاموس وSet
تُرجع القواميس أزواج (key, value). أما المجموعات فغير مرتبة، لذا استخدم sorted() للحصول على إخراج ثابت.
let ages = ["Ada": 20, "Bob": 25]
for (name, age) in ages {
print(name, age)
}
let colors: Set<String> = ["red", "green", "blue"]
for c in colors.sorted() { // sort for stable order
print(c)
}الفهارس والمقاطع
استخدم startIndex وendIndex وindex(after:) للوصول المعتمد على الفهرس. والمقاطع هي طرق عرض من نوع ArraySlice.
let arr = [5,6,7,8]
var i = arr.startIndex
while i < arr.endIndex {
print("arr[", i, "] =", arr[i])
i = arr.index(after: i)
}
let slice = arr[1...2] // ArraySlice
print("slice", slice)قابلية التغيير وCOW
قابلية التغيير: صرّح باستخدام var لتتمكن من التعديل. تستخدم المجموعات أسلوب copy-on-write، لذا تكون عمليات النسخ غير مكلفة حتى حدوث تعديل.
let fixed = [1,2,3]
// fixed.append(4) // error: cannot use mutating member on immutable value
var bag = [1,2,3]
bag.append(4) // ok
var bagCopy = bag // COW: cheap copy until either changes
bagCopy[0] = 9
print("bag", bag, "copy", bagCopy)قاعدة قابلية التغيير
تحقق سريع: أي تصريح يتيح لك تعديل مجموعة؟
مراجعة
مراجعة: فضّل for-in المعتمد على العناصر، واستخدم enumerated() للحصول على الفهرس والقيمة، ورتّب Sets عند الحاجة إلى ترتيب، وتنقل باستخدام String/Array indices، ولا تعدّل إلا باستخدام var مع مراعاة COW.
الأسئلة الشائعة
هل درس «أنماط التكرار وقابلية التغيير» مجاني؟
نعم — نص درس «أنماط التكرار وقابلية التغيير» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 3 دروس في المجموع.
ماذا ستتعلم في «أنماط التكرار وقابلية التغيير»؟
تعلّم أنماط التكرار الشائعة على المصفوفات والقواميس والمجموعات، واستخدم الفهارس وenumerated()، وافهم قابلية التغيير مع let مقابل var وأساسيات النسخ عند الكتابة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «أنماط التكرار وقابلية التغيير»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المصفوفات والقواميس والمجموعات
- المجموعات — العضوية والعمليات
- أنماط التكرار وقابلية التغيير