إنشاء المجموعات
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 18 من 56.
الـ Set هي مجموعة غير مرتبة من القيم الفريدة. نفس نوع العنصر لكل عضو، لا يسمح بالتكرار، ولا يوجد ترتيب تكرار يمكن التنبؤ به.
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (يتم إسقاط "red" المكرر)تعد إضافة توضيح النوع Set<String> إلزامية في الصيغة الحرفية لأن ["a", "b"] بمفردها سيتم استنتاجها على أنها Array.
ثلاث عمليات أساسية: contains و insert و remove. تُرجع العمليتان الأخيرتان معلومات حول ما إذا كان التغيير ذا مغزى.
colors.insert("yellow") // يضيفه
colors.insert("red") // موجود بالفعل، لا يوجد تأثير
colors.contains("green") // صحيح
colors.remove("blue") // يُرجع "blue" أو nil إذا كان مفقوداًإنشاء مجموعة (Set) من مصفوفة (Array) يزيل التكرارات في خطوة واحدة:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 عناصر، الترتيب الدقيق غير مضمونالتحدي
مبتدئاقرأ سطراً واحداً من المدخلات: قائمة كلمات مفصولة بفاصلة (ربما تحتوي على تكرارات).
اطبع ثلاثة أسطر:
- عدد الكلمات الفريدة (استخدم
Set) - الكلمات الفريدة مرتبة أبجدياً، ومدمجة بـ
, trueعندما تحتوي المدخلات على الكلمةswift، وإلاfalse(استخدمcontains)
للمدخلات swift,ruby,go,swift,go,rust، المخرجات هي:
4
go,ruby,rust,swift
trueورقة مرجعية
Set (المجموعة) – هي مجموعة غير مرتبة من القيم الفريدة. مطلوب تحديد النوع (Type annotation) عند استخدام صيغة مصفوفة ثابتة (array literal syntax):
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (تم حذف التكرار)العمليات الأساسية:
colors.insert("yellow") // يضيف عنصراً
colors.contains("green") // true
colors.remove("blue") // يعيد "blue" أو nil إذا كان مفقوداًإنشاء مجموعة من مصفوفة لإزالة التكرار:
let unique = Set([1, 2, 2, 3, 3, 3]) // 3 عناصرجرّب بنفسك
let words = readLine()!.components(separatedBy: ",")
// TODO: إزالة التكرار عبر Set، طباعة العدد، الترتيب والدمج، التحقق مما إذا كان يحتوي على "swift"
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات