List مقابل MutableList
جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 67 من 93.
حتى الآن، عملتَ مع متغيرات فردية تحتوي على قيم مفردة. ولكن ماذا لو احتجتَ إلى تخزين مجموعة من العناصر، مثل قائمة من الأسماء أو سلسلة من الأرقام؟ هنا يأتي دور القوائم.
توفر Kotlin نوعين من القوائم: List وMutableList. والفرق الرئيسي هو ما إذا كان بإمكانك تعديل القائمة بعد إنشائها.
إنّ List للقراءة فقط. ولا تعرض واجهتها عمليات لإضافة العناصر أو إزالتها أو استبدالها. وهذا لا يُعدّ ضمانًا لعدم القابلية للتغيير العميقة؛ إذ يمكن أن يتغيّر الكائن القابل للتغيير الأساسي نفسه من خلال مرجع آخر:
val fruits = listOf("Apple", "Banana", "Cherry")
val numbers = listOf(1, 2, 3, 4, 5)تسمح MutableList بإجراء تعديلات. يمكنك إضافة عناصر جديدة أو إزالة العناصر الموجودة أو تحديث القيم:
val fruits = mutableListOf("Apple", "Banana")
fruits.add("Cherry") // الآن يحتوي على: Apple, Banana, Cherryاستخدم listOf() عندما لا ينبغي أن تتغير بياناتك، وmutableListOf() عندما تحتاج إلى المرونة. يساعد هذا التمييز على منع التعديلات غير المقصودة ويجعل الغرض من التعليمات البرمجية أكثر وضوحًا.
التحدي
متوسطأنشئ قائمة للقراءة فقط باسم colors تحتوي على ثلاث سلاسل نصية: "Red" و"Green" و"Blue".
ثم أنشئ قائمة قابلة للتغيير باسم numbers تبدأ بعددين صحيحين: 10 و20.
أضف القيمة 30 إلى قائمة numbers.
أخيرًا، اطبع القائمتين في سطرين منفصلين بهذا الترتيب:
- قائمة
colors - قائمة
numbers
جرّب بنفسك
fun main() {
// TODO: أنشئ قائمة للقراءة فقط تسمى 'colors' مع "Red", "Green", "Blue"
// TODO: أنشئ قائمة قابلة للتعديل تسمى 'numbers' مع 10 و 20
// TODO: أضف 30 إلى قائمة numbers
// TODO: اطبع كلتا القائمتين في سطور منفصلة (colors أولاً، ثم numbers)
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل - الجزء الأول
العوامل الحسابيةعامل باقي القسمةالإسناد المُعزَّزعوامل المقارنةمراجعة - الرياضيات البسيطة7أساسيات الإدخال والإخراج
دالة Printlnقوالب السلاسل النصيةإدخال ReadLineتحويل النوعمراجعة - السنوات حتى التقاعدمراجعة - صواب أم خطأ10الدوال
تعريف دالةالمعاملات والوسائطالقيم المُعادةالوسائط المُسمّاةالقيم الافتراضيةالدوال ذات التعبير الواحدمراجعة - دالة سيغمامراجعة - دالة التحقق2المتغيرات
val مقابل varاستنتاج النوعالأعدادالسلسلة النصيةالقيمة المنطقيةاصطلاحات التسميةمراجعة - تهيئة المتغيرات5المعاملات الجزء 2
المعاملات المنطقية الجزء 1المعاملات المنطقية الجزء 2المعاملات المنطقية الجزء 3المعامل الثلاثي مع تعبير Ifمراجعة - المنطق البسيط8حاسبة تقسيم الفاتورة
رسالة ترحيبيةالحصول على الإدخال3القابلية للقيمة الفارغة
ما هو الأمان من القيم الفارغةالأنواع القابلة للقيمة الفارغةعامل الاستدعاء الآمنعامل Elvisأساسيات تحدي الدوالتأكيد عدم كون القيمة فارغةمراجعة - الوصول الآمن9الحلقات
حلقة Forحلقة Whileحلقة Do-WhileBreakContinueالنطاقات في الحلقاتالحلقة المتداخلةمراجعة - المضروبمراجعة - الإدخال الديناميكي12أساسيات القوائم
List مقابل MutableListالوصول إلى العناصرتعديل القوائمأساليب القوائمPair وTripleمراجعة - قائمة المنتجاتمراجعة - القائمة المعكوسةتدرّب بنفسك: Playground لـ Kotlin