تعديل المصفوفات
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 64 من 86.
تصبح المصفوفات مفيدة حقًا عندما يمكنك تغيير محتوياتها. لتعديل مصفوفة، يجب عليك التصريح عنها باستخدام var بدلاً من let.
يمكنك تغيير عنصر موجود عن طريق تعيين قيمة جديدة لفهرس محدد:
var colors = ["Red", "Green", "Blue"]
colors[1] = "Yellow"
print(colors) // ["Red", "Yellow", "Blue"]لإضافة عناصر جديدة، استخدم الطريقة append لعنصر واحد، أو المعامل += لإضافة عدة عناصر في وقت واحد:
var numbers = [1, 2, 3]
numbers.append(4)
print(numbers) // [1, 2, 3, 4]
numbers += [5, 6]
print(numbers) // [1, 2, 3, 4, 5, 6]لإدراج عنصر في موضع محدد، استخدم الأسلوب insert:
var fruits = ["Apple", "Orange"]
fruits.insert("Banana", at: 1)
print(fruits) // ["Apple", "Banana", "Orange"]لإزالة العناصر، استخدم remove(at:) مع الفهرس الذي تريد حذفه:
var items = ["A", "B", "C", "D"]
items.remove(at: 2)
print(items) // ["A", "B", "D"]تذكر، عندما تقوم بإزالة عنصر، فإن جميع العناصر اللاحقة تنتقل لأسفل لملء الفجوة.
التحدي
سهلاكتب دالة باسم modifyInventory تأخذ مصفوفة من العناصر، وعنصراً جديداً لإضافته، وفهرساً لإزالته، ثم تعيد المصفوفة المعدلة.
قم بإجراء العمليات التالية بالترتيب:
- قم بتغيير العنصر الأول إلى
"Updated" - أضف العنصر الجديد إلى نهاية المصفوفة
- قم بإزالة العنصر الموجود في الفهرس المحدد
المعاملات:
items([String]): المصفوفة الأولية للعناصرnewItem(String): العنصر المراد إضافتهremoveIndex(Int): فهرس العنصر المراد إزالته (بعد الإضافة)
المخرجات: المصفوفة المعدلة بعد جميع العمليات ([String])
مثال: إذا كانت items هي ["A", "B", "C"]، و newItem هو "D"، و removeIndex هو 2، يجب على الدالة:
- تغيير العنصر الأول:
["Updated", "B", "C"] - إضافة "D":
["Updated", "B", "C", "D"] - الإزالة عند الفهرس 2:
["Updated", "B", "D"]
ورقة مرجعية
يمكن تعديل المصفوفات المصرح عنها باستخدام var، بينما تكون المصفوفات المصرح عنها باستخدام let غير قابلة للتغيير.
قم بتغيير عنصر عن طريق تعيين قيمة جديدة لفهرس محدد:
var colors = ["Red", "Green", "Blue"]
colors[1] = "Yellow" // ["Red", "Yellow", "Blue"]أضف عنصراً واحداً باستخدام append:
var numbers = [1, 2, 3]
numbers.append(4) // [1, 2, 3, 4]أضف عناصر متعددة باستخدام +=:
numbers += [5, 6] // [1, 2, 3, 4, 5, 6]أدخل عنصراً في موضع محدد باستخدام insert(_:at:):
var fruits = ["Apple", "Orange"]
fruits.insert("Banana", at: 1) // ["Apple", "Banana", "Orange"]قم بإزالة عنصر عند فهرس محدد باستخدام remove(at:):
var items = ["A", "B", "C", "D"]
items.remove(at: 2) // ["A", "B", "D"]عند إزالة عنصر، يتم إزاحة جميع العناصر اللاحقة لأسفل لملء الفجوة.
جرّب بنفسك
func modifyInventory(items: [String], newItem: String, removeIndex: Int) -> [String] {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)12أساسيات المصفوفات
تعريف مصفوفةالوصول إلى العناصرتعديل المصفوفاتدوال المصفوفاتمراجعة - قائمة المنتجاتمراجعة - المصفوفة المعكوسةTuples