Swift 04 : المصفوفات
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
في هذا الموضوع سنتعرف إن شاء الله على المصفوفات وبعض من تطبيقاتها والوظائف (Methods) اللتي تستخدم معها
ماذا نقصد بالمصفوفة؟!
هي عبارة عن تجميع لعدد من القيم اللتي لها نفس النوع ( ... type: String, Int, or Double )
لتبسيط الأمر آكثر تخيل بأن لديك صندوق كبير وهذا الصندوق مقسم من الداخل إلى أكثر من قسم
في كل قسم لديك نوع من الفواكه، في مثالنا هذا المصفوفه هي الصندوق، ونوع المتغير هو فواكه (أو أسماء الفواكه)
مما تتكون المصفوفة؟!
للمصفوفةمكونين رئسيين:
1- أسم المصفوفة.
2- نوع البيانات داخل المصفوفة.
لنبتعد قليلا عن الأمور النظرية ولنبدأ بكتابة الأكود، وبالتأكيد أولا ما نقوم بكتابته
هو إنشاء مصفوفة داخل برمجتنا، سنقوم بإنشاء مصفوفة من نوع String وتحمل اسم names
var names = Array<String>()
ونقصد بـ var بأن بيانات المصفوفة قابلة للتغير
و names هو أسم المصفوفة
أما String هو نوع البيانات داخل المصفوفة (يجب وضع النوع بين <>).
هكذا قد قمنا بإنشاء مصفوف تحمل أسم names ونوع البيانات داخلها هو String هناك طرق أخرى لإنشاء المصفوفة
سنتطرق لها لاحقاً إن شاء الله
إلى الآن مصفوفتنا خالية ولا تحمل أية بيانات ولنقوم بإضافة البيانات يجب آن نستخدم .append
names.append("محمد")
names.append("حيدر")
names.append("نايف")
names.append("حمد")
إذا لإضافة بيانات إلى المصفوفة علينا كتابة اسم المصفوفة ومن ثم نقطة بعدها append
الآن هذه المصفوفة تحتوي على بعض البيانات اللتي قمنا بإدخالها هذه البيانات محفوظة
داخل المصفوفة ولك منها عنوانه الخاص داخل هذه المصفوفة وهذا العنوان عبارة عن الأرقام
إبتداءً من 0 إلى نهاية المصفوفة. كذلك لهذه المصفوفة حجم وهو عدد العناصر اللتي تحملها
مصفوفتنا هذه تحتوي على 4 عناصر إذا حجمها 4 وعناوين العناصر هي:
محمد: 0
حيدر: 1
نايف: 2
حمد: 3
(ملاحظة عنوان آخر عنصر دائما ما يكون حجم المصفوفة -1)
بماذا نستفيد من هذا العنوان؟!
لنتمعن في هذا المثال:
names[1]
في مثالنا هذا قمنا بإستدعاء جزء من المصفوفة وهي البيانات المخزنة بالعنوان 1 (وهو العنصر الثاني "حيدر")
عندها يسكون لدينا اسم "حيدر"، إذا عندما نريد استدعاء اي عنصر من المصفوفة علينا ان نكتب اسم المصفوفة بعدها
نضع عنوان العنصر بين [].
append تستخدم لإضافة عناصر في آخر المصفوفة لكن ماذا لو اردنا آن نضع عنصر جديد في بداية المصفوفة
أو في اي مكان داخلها؟!
في هذه الحالة نستخدم insert :
names.insert("عمار", atIndex: 2)
insert بداخلها شيئا وليس فقط واحد في البداية علينا كتابة المتغير الذي نريد اضافته
ومن ثم المكان الذي نريد اضافته فيه (يجب أن تكتب atIndex: متبوعة بالعنوان)
في هذه الحالة اضفنا "عمار" في العنوان 2 وقمنا بإزاحة نايف ومابعده رقم إلى الأمام
مصفوفتنا الجديدة ستكون:
names[0] \\محمد
names[1] \\حيدر
names[2] \\عمار
names[3] \\نايف
names[4] \\حمد
(حجم المصفوفة اصبح الآن 5 )
ماذا لو اردت أن ابدل أحد الأسماء؟!
names[0] = "صادق"
بكل بساطة في هذا المثال قمنا بمحو "محمد" من المصفوفة وإستبداله بـ "صادق"
اذا لنقوم بتغير أحد المتغيرات في المصفوفة يجب علينا ان نستدعيه ومن ثم نضع = بعدها البيانات الجديدة.
كذلك بإمكاننا أن نحذف أحد العناصر باستخدام removeAtIndex
names.removeAtIndex(3)
في هذه الحالة قمنا بحذف "نايف" من المصفوفة (جميع العناصر التي بعدها سيتغير عنوانها بمقدار -1)
هذه بعض الوظائف المستخدمة في المصفوفات :
Method |
الوظيفة |
isEmpty |
ترجع لنا قيمة صواب أو خاطىء وتستخدم لفحص المصفوفة إذا ما كانت فارقة أو لا. |
first |
يستخدم لإستدعاء أول عنصر بالمصفوفة |
last |
يستخدم لإستدعاء آخر عنصر بالمصفوفة |
count |
يستخدم للإستعلام عن حجم المصفوفة (عدد البيانات داخل المصفوفة) |
append |
يستخدم لإضافة عنصر في نهاية المصفوفة |
insert |
يستخدم لإضافة عنصر في مكان معين في المصفوفة |
removeFirst |
يستخدم لحذف أول عنصر بالمصفوفة |
removeLast |
يستخدم لحذف آخر عنصر بالمصفوفة |
removeAtIndex |
يستخدم لحذف العنصر المجود في العنوان المعطى |
removeAll |
يستخدم لحذف جميع البيانات داخل المصفوفة |
endIndex |
يرجع لنا قيمة من نوع Int وهي عنوان آخر عنصر في المصفوفة والذي يساوي حجم المصفوفة -1 |
sort |
يستخدم لعرض المصفوفة مرتبة تصاعديا )أبجدياً او عددياً) |
contains |
ترجع لنا قيمة من نوع Bool وتستخدم للبحث إذا ما كان العنصر داخل المصفوفة أو لا |
هذه بعض الوظائف المهمة وليست كلها
لإستخدام أحدى هذه الوظائف نكتب أسم المصفوفة متبوعة بـ نقطة من ثم اسم الوظيفة
أتمنى أن يكون الشرح وافياً وغير مشتت
في حفظ الله تعالى
التعليقات (3)
ملاحظة: endIndex لا يعطينا عنوان آخر عنصر إنما يعطينا العنوان الذي بعد آخر عنصر
أعتذر على هذا الخطأ
8 ساعات مضت, Abather said:ملاحظة: endIndex لا يعطينا عنوان آخر عنصر إنما يعطينا العنوان الذي بعد آخر عنصر
أعتذر على هذا الخطأ
يعطيك العافية على المقال الرائع ولك حرية تعديل المقال لاضافة معلومات او تعديلها مع ذكر السبب في حقل سبب التحرير باي وقت
اعتقد حصل تحديث للغة سويف حيث تغيرت كثر من الاوامر هنا
لكن الفكره واحده
احسنت وبارك الله فيك
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !