الخوارزميات العامة على المجموعات
استخدم الخوارزميات العامة مثل map و filter و reduce للتحويل والاختيار والدمج، واكتب دوالك الخاصة على Sequence باستخدام قيود بسيطة.
الخوارزميات العامة على المجموعات درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 3 دروس في المجموع.
لماذا الخوارزميات العامة؟
يوفّر Swift خوارزميات عامة قوية على Sequence/Collection: map وfilter وreduce. ويمكنك أيضًا كتابة أدوات مساعدة عامة خاصة بك.
map
يطبّق map تحويلاً على كل عنصر، ويعيد مصفوفة جديدة.
let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 } // [2, 4, 6]
print(doubled)
let words = ["swift", "kit"]
let caps = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(caps)filter
يُبقي filter على العناصر التي تستوفي دالة شرطية.
let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)
let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)reduce
يحوّل reduce تسلسلاً إلى نتيجة واحدة، باستخدام قيمة ابتدائية ودالة إغلاق للدمج.
let sum = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(sum)
let joined = ["a","b","c"].reduce("") { acc, s in acc + s } // "abc"
print(joined)عام مخصص (Sequence)
أنشئ خوارزمية عامة خاصة بك بتقييد الإدخال إلى Sequence واستخدام Element الخاص به.
// Works for any Sequence whose Element meets the predicate
func allMatch<S: Sequence>(_ seq: S, _ predicate: (S.Element) -> Bool) -> Bool {
for x in seq { if !predicate(x) { return false } }
return true
}
print(allMatch([2,4,6]) { $0 % 2 == 0 }) // true
print(allMatch(["ab","c"]) { $0.count >= 2 }) // falseنصائح وأنماط
نصائح:
- يُفضّل استخدام دوال إغلاق واضحة: سمِّ المعاملات إذا تأثرت سهولة القراءة.
- صِل map ← filter ← reduce لإنشاء مسارات معالجة.
- أبقِ العمل المكثف خارج الحلقات الحرجة للأداء.
معنى reduce
تحقق سريع: ما العملية التي تدمج تسلسلاً في قيمة واحدة باستخدام قيمة ابتدائية؟
خلاصة
الخلاصة: استخدم map للتحويل، وfilter للاختيار، وreduce للدمج. ويمكنك أيضًا كتابة أدوات مساعدة عامة خاصة بك على Sequence.
الأسئلة الشائعة
هل درس «الخوارزميات العامة على المجموعات» مجاني؟
نعم — نص درس «الخوارزميات العامة على المجموعات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 3 دروس في المجموع.
ماذا ستتعلم في «الخوارزميات العامة على المجموعات»؟
استخدم الخوارزميات العامة مثل map و filter و reduce للتحويل والاختيار والدمج، واكتب دوالك الخاصة على Sequence باستخدام قيود بسيطة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «الخوارزميات العامة على المجموعات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الدوال والأنواع العامة
- القيود (where) والاستدلال على الأنواع
- الخوارزميات العامة على المجموعات