القواميس Dictionaries في السويفت - الجزء الثاني
بسم الله الرحمن الرحيم
تكلمنا في المقالة السابقة (القواميس Dictionaries في السويفت - الجزء الأول) عن عدّة نقاط وهي :
- ماهي القواميس Dictionaries ؟
- كيفية تعريف وإنشاء القواميس Dictionaries :
1 إنشاء قواميس فارغة .
2 إنشاء قواميس بقيم إبتدائية .
- إضافة عناصر جديدة للقواميس .
- إزالة قيم القواميس .
وفي هذه المقالة سنكمل ماتعلمناه عن القواميس وسنتحدث عن :
- التعديل على قيم القواميس .
- خاصية count في القواميس.
- استخدام التكرار مع القواميس .
- التعديل علي قيم القواميس :
ذكرنا سابقاً أننا عندما نريد التعامل مع قيم القواميس والوصول لها فإن ذلك سيكون عن طريق المفتاح الخاص بالقيمة، وبناءاً على ذلك نستطيع الوصول والتعديل على قيمة معينة من خلال المفتاح الخاص بها .
* ملاحظة : حتى تتمكن من التعديل على قيم القواميس من المهم أن تكون من نوع var (متغير) وليس let (ثابت) .
وللتعديل علي أي قيمة سيكون ذلك كالتالي :
مثال (١) :
var Jobs : [Int : String] = [1:"Programmer" , 2:"Designer" , 3:"Writer"]
Jobs [3] = "Secretary"
في هذا المثال تم تغيير قيمة المفتاح (3) في المتغير Jobs من (Writer) إلى (Secretary) .
أيضاً للتعديل على القيم نستطيع استخدام الدالة updateValue (ForKey:) وسنستخدمها كالتالي :
سنقوم بتغيير قيمة المفتاح (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)
في هذا المثال لدينا متغيرين من نوع Dictionary وهم Jobs و NewJobs الأول يحتوي على (٣عناصر) ،بينما المتغير الثاني يحتوي على (عنصرين فقط) .
بعد ذلك قمنا باستخدام الخاصية count مع كلا المتغيرين لطباعة عدد العناصر الموجودة في كل متغير وعلى ذلك سيتم طباعة رقم 3 ومن ثم رقم 2 والتي تدل كما قلنا على عدد عناصر كل متغير .
تستطيع الآن تجربة ذلك في ال xCode لترى النتيجة
- استخدام التكرار مع القواميس :
لابد وأنك لاحظت في الأمثلة السابقة جميع المخرجات تكون للقيم بدون المفتاح ولقيمة واحدة فقط ، فلنفترض الآن بأنك أردت طباعة كل المفاتيح الموجودة مع قيمهم ، ولعمل ذلك فإننا سنستخدم for-In loop (يُفترض بأنك قد تعرفت على for-In loop كيفية كتابتها وفكرتها قبل التعرف على القواميس ) .
مثال (١) :
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
والمخرجات ستكون كالتالي :
بإمكانك أيضاً باستخدام الـ for-In loop مع القواميس أن تقوم بطباعة جميع المفاتيح فقط أو جميع القيم فقط كالتالي :
for x in Jobs.keys {
print ( " Key = \(x) ")
}
استخدمنا الخاصية keys بعد اسم القاموس لنتمكن من طباعة جميع المفاتيح في القاموس Jobs.
والمخرجات ستكون كالتالي :
* لاحظ بأن المخرجات ليست بالترتيب لأن كما ذكرنا سابقاً (في مقالة القواميس Dictionaries في السويفت - الجزء الأول) بأن القواميس تعتبر غير مرتبة unorderd .
ولطباعة القيم فقط سنستخدم الخاصية values :
for x in Jobs.values {
print ( " Key = \(x) ")
}
والمخرجات كالتالي :
وبذلك نكون قد انتهينا بحمد الله من موضوع القواميس Dictionaries بجزئيه الأول والثاني ،أتمنى أكون قد وفقت في الشرح ولا تتردد في سؤالي عن أي نقطة قد تصعب عليك
وصلى الله وسلم على نبينا محمد وعلى آله وصحبه أجمعين ..
التعليقات (2)
شكراً على المقال الرائع أستفدت كثيراً
يوجد سهو في الكود أدناه
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) ")
}
مع خالص الاحترام والتقدير
تم التعديل شاكرة لك أخ محمد
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !