Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دوال المصفوفات

جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 65 من 86.

بالإضافة إلى إضافة العناصر وإزالتها، تأتي مصفوفات Swift مع العديد من الطرق (methods) المفيدة التي تجعل العمل مع المجموعات أسهل.

تتحقق الخاصية isEmpty مما إذا كانت المصفوفة تحتوي على أي عناصر:

var tasks = [String]()
print(tasks.isEmpty)  // true

tasks.append("Buy groceries")
print(tasks.isEmpty)  // false

لإزالة جميع العناصر في وقت واحد، استخدم removeAll():

var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers)  // []

تُرجع الدالة reversed() العناصر بترتيب عكسي:

let letters = ["A", "B", "C"]
print(Array(letters.reversed()))  // ["C", "B", "A"]

للقيام بالفرز، استخدم sorted() للحصول على مصفوفة مرتبة جديدة، أو sort() لفرز المصفوفة في مكانها:

let scores = [85, 42, 97, 63]
print(scores.sorted())  // [42, 63, 85, 97]

var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices)  // [2.5, 5.75, 9.99]

لاحظ أن sorted() تُرجع مصفوفة جديدة بينما تترك المصفوفة الأصلية دون تغيير، في حين أن sort() تعدل المصفوفة الأصلية مباشرة.

challenge icon

التحدي

سهل

اكتب دالة باسم processScores تأخذ scores وتعيد سلسلة نصية منسقة تحتوي على معلومات حول الدرجات.

يجب أن تقوم الدالة بتحليل المصفوفة وبناء سلسلة نصية للنتيجة تتضمن ثلاث قطع من المعلومات.

المنطق:

  1. تحقق مما إذا كانت المصفوفة فارغة باستخدام isEmpty
  2. إذا كانت فارغة، أعد "No scores"
  3. خلاف ذلك، احصل على الدرجات المرتبة (ترتيب تصاعدي) والدرجات المعكوسة
  4. أعد سلسلة نصية تجمع بين النتيجتين

المعاملات:

  • scores ([Int]): مصفوفة من درجات الأعداد الصحيحة

المخرجات: سلسلة نصية بالتنسيق التالي: "Sorted: [sorted_array], Reversed: [reversed_array]" أو "No scores" إذا كانت المصفوفة فارغة (String)

مثال: إذا كانت scores هي [85, 42, 97, 63]، يجب أن تعيد الدالة:

"Sorted: [42, 63, 85, 97], Reversed: [63, 97, 42, 85]"

ملاحظة: المصفوفة المعكوسة يجب أن تكون عكس المصفوفة الأصلية، وليس المصفوفة المرتبة.

ورقة مرجعية

توفر مصفوفات Swift عدة طرق مفيدة للعمل مع المجموعات:

تتحقق الخاصية isEmpty مما إذا كانت المصفوفة تحتوي على أي عناصر:

var tasks = [String]()
print(tasks.isEmpty)  // true

tasks.append("Buy groceries")
print(tasks.isEmpty)  // false

استخدم removeAll() لإزالة جميع العناصر من المصفوفة:

var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers)  // []

تعيد الطريقة reversed() العناصر بترتيب عكسي:

let letters = ["A", "B", "C"]
print(Array(letters.reversed()))  // ["C", "B", "A"]

للفرز، استخدم sorted() لإنشاء مصفوفة مرتبة جديدة، أو sort() للفرز في نفس المكان:

let scores = [85, 42, 97, 63]
print(scores.sorted())  // [42, 63, 85, 97]

var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices)  // [2.5, 5.75, 9.99]

تعيد sorted() مصفوفة جديدة دون تعديل المصفوفة الأصلية، بينما تقوم sort() بتعديل المصفوفة مباشرة.

جرّب بنفسك

func processScores(scores: [Int]) -> String {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات