تقطيع المصفوفات - الجزء الثاني
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 74 من 86.
توفر لغة Swift بناء جملة مختصرًا ومريحًا لتقسيم المصفوفة من البداية أو حتى النهاية. بدلاً من تحديد 0 أو الفهرس الأخير بشكل صريح، يمكنك ترك أحد جانبي النطاق فارغًا.
لاقتطاع جزء من بداية مصفوفة حتى فهرس معين، احذف قيمة البداية:
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3]
print(firstThree) // [10, 20, 30]وبالمثل، لاقتطاع جزء من فهرس محدد إلى النهاية، احذف قيمة النهاية:
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...]
print(fromIndex2) // [30, 40, 50]يمكنك أيضاً استخدام إصدار النطاق المغلق لتضمين نقطة بداية محددة:
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3]
print(upToIndex3) // ["a", "b", "c", "d"]تجعل هذه النطاقات أحادية الجانب كودك أكثر ترتيباً عندما تحتاج إلى العناصر القليلة الأولى أو كل شيء بعد نقطة معينة. تذكر أن تقوم بتغليف النتيجة في Array() إذا كنت بحاجة إلى مصفوفة عادية بدلاً من ArraySlice.
التحدي
سهلاكتب دالة باسم splitArray تأخذ numbers و index وتعيد جميع العناصر من الفهرس المعطى إلى نهاية المصفوفة.
استخدم عامل النطاق أحادي الجانب (...) لقص المصفوفة من الفهرس المحدد إلى النهاية، وأعد النتيجة كمصفوفة عادية.
المعاملات:
numbers([Int]): المصفوفة المراد قصهاindex(Int): فهرس البداية (شامل)
المخرجات: مصفوفة تحتوي على جميع العناصر من الفهرس المعطى إلى نهاية المصفوفة ([Int])
مثال: إذا كانت numbers هي [5, 10, 15, 20, 25, 30] و index هو 3، يجب أن تعيد الدالة [20, 25, 30].
ورقة مرجعية
توفر لغة Swift صيغة مختصرة لتقطيع المصفوفات (slicing) من البداية أو حتى النهاية عن طريق ترك أحد جانبي النطاق فارغاً.
للتقطيع من البداية وصولاً إلى فهرس محدد، اترك قيمة البداية فارغة:
let numbers = [10, 20, 30, 40, 50]
let firstThree = numbers[..<3] // [10, 20, 30]للتقطيع من فهرس محدد حتى النهاية، اترك قيمة النهاية فارغة:
let numbers = [10, 20, 30, 40, 50]
let fromIndex2 = numbers[2...] // [30, 40, 50]استخدم نسخة النطاق المغلق لتضمين فهرس نهاية محدد:
let letters = ["a", "b", "c", "d", "e"]
let upToIndex3 = letters[...3] // ["a", "b", "c", "d"]تُرجع النطاقات أحادية الجانب ArraySlice. قم بتغليف النتيجة في Array() لتحويلها إلى مصفوفة عادية:
let regularArray = Array(numbers[2...])جرّب بنفسك
func splitArray(numbers: [Int], index: Int) -> [Int] {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات14المصفوفات المتقدمة
تقطيع المصفوفات - الجزء الأولتقطيع المصفوفات - الجزء الثانيمعاملات المتسلسلاتدالة Contains3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)