0Pricing
Swift Academy · درس

‏prefix و suffix و dropFirst

استخرج أجزاءً من مجموعة بطريقة تصريحية.

‏prefix و suffix و dropFirst درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

prefix(n)

تعيد prefix(n) شريحةً من أول n عناصر. وهي آمنة حتى إذا كان n أكبر من حجم المصفوفة.

let arr = [1, 2, 3, 4, 5]
print(Array(arr.prefix(3)))
print(Array(arr.prefix(99)))

suffix(n)

تعيد suffix(n) شريحةً من آخر n عناصر، مع تقييد العدد بأمان أيضًا.

let arr = [1, 2, 3, 4, 5]
print(Array(arr.suffix(2)))
print(Array(arr.suffix(0)))

dropFirst

تزيل dropFirst() العنصر الأول، بينما تزيل dropFirst(n) أول n عناصر.

let arr = [10, 20, 30, 40]
print(Array(arr.dropFirst()))
print(Array(arr.dropFirst(2)))

dropLast

تزيل dropLast() العناصر من النهاية. وكغيرها، تعيد شريحة.

let arr = [10, 20, 30, 40]
print(Array(arr.dropLast()))
print(Array(arr.dropLast(3)))

كلها تعيد شرائح

تعيد كل واحدة من هذه الدوال ArraySlice، لا مصفوفة جديدة. حوّلوها عندما تحتاجون إلى مصفوفة فعلية.

let arr = [1, 2, 3, 4]
let s = arr.prefix(2)
print(type(of: s))

آمنة مع قيم n الكبيرة

على خلاف استخدام الفهرسة بنطاق خارج الحدود، لا تتسبب هذه الدوال في حدوث تعطل مطلقًا. فطلب عناصر أكثر من المتاح يعيد العناصر الموجودة فقط.

let arr = [1, 2]
print(Array(arr.prefix(10)))
print(Array(arr.dropFirst(10)))

prefix(while:)

تأخذ prefix(while:) العناصر من البداية ما دام الشرط متحققًا، ثم تتوقف.

let arr = [2, 4, 6, 7, 8]
let evensAtStart = arr.prefix(while: { $0 % 2 == 0 })
print(Array(evensAtStart))

drop(while:)

تتخطى drop(while:) العناصر البادئة ما دام الشرط متحققًا، ثم تعيد بقية العناصر.

let arr = [2, 4, 6, 7, 8]
let rest = arr.drop(while: { $0 % 2 == 0 })
print(Array(rest))

دمج الدوال

يمكنكم تسلسل هذه الدوال للتعبير عن أخذ الشرائح بإيجاز، مثل أخذ كل العناصر باستثناء العنصرين الأول والأخير.

let arr = [10, 20, 30, 40, 50]
let middle = arr.dropFirst().dropLast()
print(Array(middle))

نمط المعاينة مقابل الإزالة

استخدموا first لمعاينة العنصر الأول وdropFirst() للحصول على البقية؛ فهذا نمط وظيفي شائع لمعالجة القوائم.

let queue = [100, 200, 300]
if let head = queue.first {
    let tail = Array(queue.dropFirst())
    print("head:", head, "tail:", tail)
}

وضوح المقصود

توضح هذه الدوال المقصود أفضل من النطاقات اليدوية. فالتعبير arr.suffix(3) أوضح من arr[(arr.count-3)...].

let arr = [1, 2, 3, 4, 5, 6]
print(Array(arr.suffix(3)))

اختبار سريع

اختبروا سلوك prefix وdrop.

مراجعة

تأخذ prefix(n) وsuffix(n) العناصر من الطرفين، بينما تزيل dropFirst وdropLast العناصر من الطرفين. تعيد جميعها شرائح، وهي آمنة مع أعداد العناصر التي تتجاوز الحجم. وتستخدم prefix(while:) وdrop(while:) دوالًا شرطية.

let arr = [1, 2, 3, 4, 5]
print(Array(arr.prefix(2)), Array(arr.suffix(2)), Array(arr.dropFirst()))

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

هل درس «‏prefix و suffix و dropFirst» مجاني؟

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

ماذا ستتعلم في «‏prefix و suffix و dropFirst»؟

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

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

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

كم من الوقت يستغرق درس «‏prefix و suffix و dropFirst»؟

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

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

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

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

  1. إنشاء المقاطع باستخدام النطاقات
  2. دلالات فهارس ArraySlice
  3. تحويل المقاطع مجددًا إلى مصفوفات
  4. ‏prefix و suffix و dropFirst
← العودة إلى Swift Academy