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

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

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

 

تكلمنا في المقالة السابقة (القواميس Dictionaries في السويفت - الجزء الأول) عن عدّة نقاط وهي :

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

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

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

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

وفي هذه المقالة سنكمل ماتعلمناه عن القواميس وسنتحدث عن :

 

  • التعديل على قيم القواميس .
  • خاصية count في القواميس.
  • استخدام التكرار مع القواميس .

 

  • التعديل علي قيم القواميس :

ذكرنا سابقاً أننا عندما نريد التعامل مع قيم القواميس والوصول لها فإن ذلك سيكون عن طريق المفتاح الخاص بالقيمة، وبناءاً على ذلك نستطيع الوصول والتعديل على قيمة معينة من خلال المفتاح الخاص بها .

 

* ملاحظة : حتى تتمكن من التعديل على قيم القواميس من المهم أن تكون من نوع var (متغير) وليس let (ثابت) .

 

وللتعديل علي أي قيمة سيكون ذلك كالتالي  :

modifdictio.thumb.png.696f76a09910d8ad2126af463862236b.png

 

مثال (١) :


var  Jobs : [Int : String] = [1:"Programmer" , 2:"Designer" , 3:"Writer"]

Jobs [3] = "Secretary" 

 

في هذا المثال تم تغيير قيمة المفتاح (3) في المتغير Jobs من (Writer) إلى (Secretary) .

 

أيضاً للتعديل على القيم نستطيع استخدام الدالة updateValue (ForKey:) وسنستخدمها كالتالي :

updatfunc.thumb.png.d8d6663e142700083a7656a3f077514e.png

 

سنقوم بتغيير قيمة المفتاح (3) في المتغير Jobs في المثال السابق من (Writer) إلى (Secretary) ولكن باستخدام الدالة :


Jobs.updateValue("Secretary", forKey: 3)

 

  • خاصية Count في القواميس :

 

في القواميس نستطيع استخدام الخاصية count لمعرفة عدد العناصر الموجودة .

 

مثال (١) :


var  Jobs : [Int : String] = [1:"Programmer" , 2:"Designer" , 3:"Writer"]

var  NewJobs : [Int : String] = [1:"Doctor" , 2:"Engineer"]

print(Jobs.count)

print(NewJobs.count) 

599b92e4535c1_output-countproperty2.png.af20fc3f63a3a1c63974ea64a6af507b.png

في هذا المثال لدينا متغيرين من نوع Dictionary وهم Jobs و NewJobs الأول يحتوي على (٣عناصر)  ،بينما المتغير الثاني يحتوي على (عنصرين فقط) .

بعد ذلك قمنا باستخدام الخاصية count مع كلا المتغيرين لطباعة عدد العناصر الموجودة في كل متغير وعلى ذلك سيتم طباعة رقم 3 ومن ثم رقم 2 والتي تدل كما قلنا على عدد عناصر كل متغير .

 

تستطيع الآن تجربة ذلك في ال xCode لترى النتيجة  

 

 

  • استخدام التكرار مع القواميس :

 

لابد وأنك لاحظت في الأمثلة السابقة جميع المخرجات تكون للقيم بدون المفتاح ولقيمة واحدة فقط ، فلنفترض الآن بأنك أردت طباعة كل المفاتيح الموجودة مع قيمهم ، ولعمل ذلك فإننا سنستخدم for-In loop (يُفترض بأنك قد تعرفت على for-In loop كيفية كتابتها وفكرتها قبل التعرف على القواميس ) .

599b92d6f2a6e_Dictiandloop1.png.ac1f7ad577c120e69bf5db9ee8e4e8ce.png

مثال (١) :

 


var  Jobs : [Int : String] = [1:"Programmer" , 2:"Designer " , 3:"Writer"]



for (x , y)  in Jobs {

    

    print ( " Key =   \(x)  and the value is =  \(y) ")

}

 

بالمثال السابق أردنا طباعة جميع المفاتيح مع قيمها للقاموس Jobs ،واستخدمنا الـ for - In loop لطباعتها .

في for- in loop سيصبح للمفاتيح ثابت وأسميناه x وللقيم أيضاً ثابت واسميناه y 

والمخرجات ستكون كالتالي :

599b9375b56b6_ex1-Dictiwithloop.png.cee09915f2cd0dd88c62f18dc3605487.png

 

بإمكانك أيضاً باستخدام الـ for-In loop مع القواميس أن تقوم بطباعة جميع المفاتيح فقط أو جميع القيم فقط كالتالي :

 


for x in Jobs.keys {

    print ( " Key =   \(x)  ")

}

استخدمنا الخاصية keys بعد اسم القاموس لنتمكن من طباعة جميع المفاتيح في القاموس Jobs.

والمخرجات ستكون كالتالي :

599b93769ac38_ex2-Dictiwithloop.png.029ecbef12e1201dea2ba89f8670ed5d.png

 

* لاحظ بأن المخرجات ليست بالترتيب لأن كما ذكرنا سابقاً (في مقالة القواميس Dictionaries في السويفت - الجزء الأول) بأن القواميس تعتبر غير مرتبة unorderd .


ولطباعة القيم فقط سنستخدم الخاصية values :


for x in Jobs.values {

    

    print ( " Key =   \(x)  ")

}

 والمخرجات كالتالي :

599b93775a319_ex2to2-Dictiwithloop.png.9422ad4fb8701165c9e71fd2297febe4.png

 

 

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

 

وصلى الله وسلم على نبينا محمد وعلى آله وصحبه أجمعين ..

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

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

Muhammad Ghunaim:

شكراً على المقال الرائع أستفدت كثيراً

يوجد سهو في الكود أدناه 

for (x , y)  in Jobs {       

  print ( " Key =   \(Key)  and the value is =  \(Value) ")

}

 يجب أن تكون بهذا الشكل

for (x , y)  in Jobs {

    print ( " Key =   \(x)  and the value is =  \(y) ")

}

مع خالص الاحترام والتقدير

 

ساره علي:

تم التعديل شاكرة لك أخ محمد

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

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