القواميس Dictionaries في سويفت - الجزء الأول

ساره عليمنذ 7 سنوات

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

 

كما نعرف فإن لغة السويفت Swift تدعم الأنواع الأساسية من المتغيرات مثل : Int - Float - Double - Bool - String - Character

 

كما تدعم أنواع مختلفة أخرى ، وتدعم ٣ أنواع أساسية تُسمى بـ ( Collection Types )  وهم :

المصفوفات Arrays - القواميس Dictionaries - المجموعات Set

 

سأتحدث في هذه المقالة عن ( القواميس Dictionaries ) ، وسأتكلم فيها عن :

 

  • ماهي القواميس Dictionaries ؟
  • كيفية تعريف وإنشاء القواميس Dictionaries :
  1. إنشاء قواميس فارغة .
  2. إنشاء قواميس بقيم إبتدائية .
  • إضافة عناصر جديدة للقواميس .
  • إزالة قيم القواميس .

 

  • ماهي القواميس Dictionaries ؟

كما قلنا سابقاً فإن القواميس أو ماتعرف بـ Dictionaries هي إحدى أنواع المتغيرات في لغة السويفت Swift ، يُستخدم هذا النوع في تخزين عدد من القيم (غير المرتبة unorderd) في متغير واحد ،ويتم تخزين كل قيمة باستخدام مُعرف فريد يُعرف بـ ( المفتاح Key) وذلك ليسهل الوصول لهذه القيمة عند الحاجة إليها .

 

ولتسهيل فكرة القواميس Dictionaries قمت بعمل رسم توضيحي يشرح فكرتها :

Dictionaries1.thumb.png.1d875fd3a138cd3e1959ba299c81c491.png

في الرسمه السابقة نرى بأن لدينا ( متغير ) من نوع dictionary بحيث احتوى على ( ٣ مفاتيح ) وكل مفتاح يشير إلى ( قيمة ) ، بحيث نستطيع الوصول مثلاً (للقيمة ١) فقط عن طريق ( المفتاح ١) و (القيمة ٢) عن طريق (المفتاح ٢) و (القيمة ٣) عن طريق ( المفتاح ٣) وهكذا . وبالتالي استطعنا في متغير واحد تخزين أكثر من قيمة والوصول لهذه القيم باستخدام المفاتيح Keys .

 

سألخص لك الكلام السابق على شكل نقاط :

  • القواميس Dictionaries  إحدى أنواع المتغيرات في لغة السويفت Swift .
  • تقوم بتخزين عدد من القيم غير المرتبة unorderd داخل متغير واحد .
  • يتم الوصول لكل قيمة من قيم القواميس عن طريق معرف فريد يعرف بالمفتاح Key .

 

اتمنى أن تكون فكرة القواميس Dictionaries أصبحت واضحة وإن لم تكن كذلك فبإذن الله ستتضح لك أكثر مع الأمثلة ? 

 

  • كيفية تعريف وإنشاء القواميس Dictionaries :

قبل أن نقوم بالتعرف على طريقة إنشاء القواميس سأذكر لك عدّة نقاط مهمة جداً يجب عليك أن تضعها في الاعتبار قبل تعريف أي Dictionary :

 

أولاً : أسماء المفاتيح Keys يجب أن تكون فريدة uniqe .

ثانياً : في المتغير من نوع Dictionary يجب أن تكون ( كل ) المفاتيح key من نفس النوع ، و ( كل ) القيم من نفس النوع ، مثلاً أن تكون كل المفاتيح من نوع Int والقيم من نوع String فهذا صحيح لأن كل المفاتيح من نفس النوع وهو Int و كل القيم من نفس النوع وهو String .

ثالثاً : من المسموح أيضاً أن تكون جميع المفاتيح وجميع القيم من نفس النوع مثلاً أن تكون المفاتيح والقيم من نوع String .

 

والآن فلنبدأ بإنشاء القواميس Dictionaries !

 

1. إنشاء قواميس فارغة :

لتعريف القواميس نستخدم مايعرف بالأقواس المربعة [ ] لتحديد نوع المفاتيح والقيم للمتغير :

emptydict.png.d9e1b4a78234047f82aba29ec0772d84.png

مثال (١) :

 


var  x = [Int : String] ( )

 

في المثال السابق قمنا بتعريف المتغير x وعرّفنا المفاتيح من نوع Int والقيم من نوع String ( وليس العكس ) و استخدمنا الأقواس التالية : ( ) لنقول بأن المتغير هذا لايحتوى على أي قيمة إلى الآن .

 

مثال (٢) :


var y = [String : String] ( )

 

قمنا بتعريف المتغيرy وعرّفنا المفاتيح من نوع String والقيم أيضاً من نوع String ،و استخدمنا الأقواس التالية : ( ) لنقول بأن المتغير هذا لايحتوى على أي قيمة إلى الآن .

 

2. إنشاء قواميس بقيم إبتدائية :

ولإضافة قيم للقواميس سنتبع الصيغة التالية :

valdict.thumb.png.9e85a8f66f31c5ce9362d1aeb2df0cad.png

 

سنقوم الآن بتعديل الأمثلة السابقة ووضع قيم ابتدائية لها، وسيكون ذلك كالتالي :

مثال (١) :

 


 var x : [Int : String] =  [ 

1 : "A" , 

2: "B" , 

3 : "C"

]

 

المتغير x يحتوى على المفاتيح التالية : المفتاح 1 والذي يشير للقيمة A والمفتاح 2 والذي يشير للقيمة B والمفتاح 3 والذي يشير للقيمة C .

59822104ed800_Dictionariesexp1.thumb.png.2847bd1e22307c832f47090fceb6f0eb.png

مثال (٢) :

 


var y : [String : String] = [ 

"One" : "A" ,

"Two" : "B" ,

"Three" : "C"

]

 

المتغير y يحتوي على المفاتيح التالية : المفتاح One والذي يشير للقيمة A والمفتاح Two والذي يشير للقيمة B والمفتاح Three والذي يشير للقيمة C .

5982216fdc955_Dictionariesexp2.thumb.png.e536a607ca861ec7d037bd81133e1175.png

من الأمثلة السابقة نلاحظ مايلي :

  • لتعيين القيم للمتغير نستخدم ( = ) .
  • نضع القيم بين الأقواس كالتالي :  ] المفتاح : القيمة [ ونفصل بينهم بفاصلة ( , ) .
  • المفاتيح والقيم لها نفس النوع الذي تم تعريفه ، غير ذلك سيظهر لنا خطأ error.
  • ( كل ) المفاتيح في المتغير الواحد كانت من نفس النوع و ( كل ) القيم أيضاً كانت من نفس النوع .

 

  • إضافة عناصر جديدة للقواميس :

من المهم معرفة أن القواميس لا تستخدم الأمر insert أو الأمر append لإدراج عناصر جديدة مثل ماتفعل المصفوفات ،والسبب في ذلك كما ذكرنا بداية هذه المقالة بأن القواميس تتميز بأنها غير مرتبة unordered بعكس المصفوفات التي تتميز بأنها مرتبة orderd 

 

لذلك لادراج قيم في القواميس سنتبع الطريقة التالية :

newval.png.f3b79519688557794053abf3d9d43c8c.png

مثال (١) :

 


x [ 4 ] = "Four"

 

هنا أصبح لدينا في المتغير x مفتاح (4) وقيمته هي  . Four

 

مثال (٢) :

 


y ["Four"] = "D"

 

هنا أصبح لدينا في المتغير y مفتاح Four)) وقيمته هي  . D

 

  • إزالة قيم القواميس :

كما عرفنا فإن القيم في القواميس مرتبطة بمفتاح key خاص فيها لذلك عند حذف أي قيمه فإننا نتعامل مع المفتاح الخاص فيها وذلك بجعله يساوي nil :

 


Variable-Name [Key] = nil

 

مثال (١) :

 


x [ 4 ] = nil

 

مثال (٢) :

 


y ["Four"] = nil

 

 

الطريقة الأخرى وهي استخدام الدالة( removeValue (ForKey :Key_name ، هذه الدالة تقوم بحذف القيمة المطلوبة إن كانت موجودة أو تسترجع القيمة nil في حالة لم تكن موجودة .

 


Variable-Name.removeValue (ForKey : Key_name)

 

مثال (١) :

 


x.removeValue (ForKey :4)

مثال (٢) :

 


y.removeValue (ForKey :"Four")

 

 

وصلنا لنهاية المقالة أتمنى أن أكون قد وفقت في إيصال المعلومات بشكل واضح وسهل للجميع ،وبإذن الله سيكون هناك جزء ثاني لهذه المقالة نتعمق فيها أكثر في القواميس .

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

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

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

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