Swift 04 : المصفوفات

Abatherمنذ 8 سنوات

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

في هذا الموضوع سنتعرف إن شاء الله على المصفوفات وبعض من تطبيقاتها والوظائف (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 وتستخدم للبحث إذا ما كان العنصر داخل المصفوفة أو لا

 

هذه بعض الوظائف المهمة وليست كلها

لإستخدام أحدى هذه الوظائف نكتب أسم المصفوفة متبوعة بـ نقطة من ثم اسم الوظيفة

أتمنى أن يكون الشرح وافياً وغير مشتت 

في حفظ الله تعالى

كلمات دليلية:
0
إعجاب
6436
مشاهدات
0
مشاركة
0
متابع
متميز
محتوى رهيب

التعليقات (3)

Abather:

ملاحظة: endIndex لا يعطينا عنوان آخر عنصر إنما يعطينا العنوان الذي بعد آخر عنصر

أعتذر على هذا الخطأ

Ali Majrashi:
8 ساعات مضت, Abather said:

ملاحظة: endIndex لا يعطينا عنوان آخر عنصر إنما يعطينا العنوان الذي بعد آخر عنصر

أعتذر على هذا الخطأ

يعطيك العافية على المقال الرائع ولك حرية تعديل المقال لاضافة معلومات او تعديلها مع ذكر السبب في حقل سبب التحرير باي وقت

NAJIALFARIDI:

اعتقد حصل تحديث للغة سويف حيث تغيرت كثر من الاوامر هنا

 

لكن الفكره واحده

 

 

احسنت وبارك الله فيك

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !