কী ভ্যালু পেয়ারে কোন ডেটা স্টোর করার জন্য ডিকশনারি ব্যবহার করা হয়। অনেকটা রিয়েল লাইফ ডিকশনারির মতই। যেখানে একটা আইটেম কাজ করে key হিসেবে, আরেকেকটা value হিসেবে। যেমনঃ
var dictionary: [String: String] = [ "Programming": "The process of writing computer programs.", "Software": "The programs used to operate a computer." ]
এখানে আমরা একটা ডিকশনারি তৈরি করেছি। এই ডিকশনারিতে দুইটা কি-ভ্যালু পেয়ার রয়েছে। এছাড়া ডিকশনারি তৈরি করার সময় [String: String] দিয়ে বলে দিয়েছি এখানে কী এবং ভ্যালু দুইটাই স্ট্রিং থাকবে। এখন যদি আমরা programming এর ভ্যালু দেখতে চাই, তাহলে এভাবে লিখতে পারিঃ
print(dictionary["Programming"])
যা আউটপুট দিবেঃ
Optional("The process of writing computer programs.")
এখানে Optional হিসেবে ভ্যালু রিটার্ণ করবে। কারণ ঐ key এর জন্য কোন ভ্যালু নাও থাকতে পারে। এমনকি Xcode ওয়ার্নিং ও দেখাবে। যেন যদি ঐ key এর জন্য কোন value না থাকে, তাহলে যেন ডিফল্ট একটা ভ্যালু সেট করে দেই। আর তা সেট করতে পারি এভাবেঃ
print(dictionary["Hardware"] ?? "No definition found")
আমাদের ডিকশনারিতে Hardware কী এর জন্য কোন ভ্যালু নেই। তাই ডিফল্ট ভ্যালু আউটপুট দিয়েছে।
ডিকশনারিতে নতুন আইটেম যোগ করাঃ
ডিকশনারিতে নতুন আইটেম আমরা এভাবে যোগ করতে পারিঃ
dictionary[“Hardware”] = “The physical components of a computer”
এখানে যদি Hardware নামে কোন কী না থাকে, তাহলে নতুন করে Hardware কী যোগ করবে এবং তার ভ্যালু হিসেবে The physical components of a computer যোগ করবে।
আবার একই ভাবে কোন ভ্যালু আমরা আপডেটও করতে পারি। যেমন উপরের বাক্যে আমরা কমা যোগ করতে ভুলে গিয়েছি। এখন যদি পরবর্তীতে The physical components of a computer. দিয়ে Hardware কি আপডেট করি, তাহলে পূর্বের ভ্যালু রিপ্লেস হয়ে যাবে।
নিচের কোড রান করে দেখতে পারেনঃ
var dictionary: [String: String] = [ "Programming": "The process of writing computer programs.", "Software": "The programs used to operate a computer." ] dictionary["Hardware"] = "The physical components of a computer" print(dictionary) dictionary["Hardware"] = "The physical components of a computer." print(dictionary)
ডিকশনাইরতে নতুন কোন আইটেম যোগ না করে আগের ভ্যালু আপডেট করেছে। ডিকশনারিতে কতগুলো আইটেম রয়েছে তা বের করতে পারি count দিয়ে। যেমনঃ
print(dictionary.count)
ডিকশনারি ইটারেশনঃ
আমরা আরেকটু সিম্পল একটা ডিকশনারি তৈরি করে নেই। যেন পড়তে সুবিধা হয়।
var int_roman: [Int: String] = [1: "I", 2: "II", 3: "III", 4: "IV", 5: "V"] for(int, roman) in int_roman{ print("Roman \(roman) means \(int)") }
এখানে রোমান এবং ইন্টিজারের একটা ডিকশনারি নিয়েছি আমরা। এরপর ঐ ডিকশনারির মধ্যে ইটারেশন করে এর ভ্যালু গুলো প্রিন্ট করেছি। যা প্রিন্ট করলে আউটপুট পাবোঃ
Roman II means 2 Roman III means 3 Roman V means 5 Roman IV means 4 Roman I means 1
ডিকশনারিতে অডার্ড ভাবে ডেটা থাকে না। তাই একেক বার প্রিন্ট করলে একেক অর্ডারে প্রিন্ট হবে।
ডিকশনারি থেকে শুধু key গুলো এক্সেস করতে পারি এভাবেঃ
var int_roman: [Int: String] = [1: "I", 2: "II", 3: "III", 4: "IV", 5: "V"] for int in int_roman.keys{ print(int) }
যা আউটপুট দিবে 1-5 পর্যন্ত সংখ্যা গুলো।
আবার একই ভ্যাবে শুধু মাত্র ভ্যালু গুলোও এক্সেস করতে পারি এভাবেঃ
var int_roman: [Int: String] = [1: "I", 2: "II", 3: "III", 4: "IV", 5: "V"] for roman in int_roman.values{ print(roman) }
যা রোমান সংখ্যা গুলো আউটপুট দিবে।
ডিকশনারি থেকে আইটেম রিমুভ
ডিকশনারি থেকে key ব্যবহার করে আমরা এর একটা key-value পেয়ার রিমুভ করতে পারি। যেমনঃ
var int_roman: [Int: String] = [1: "I", 2: "II", 3: "III", 4: "IV", 5: "V"] int_roman.removeValue(forKey: 2) print(int_roman)
এখানে বলে দিয়েছি যে 2 কী ব্যবহার করে ঐ পেয়ার রিমুভ করতে। ফলে 2: “II” ডিকশনারি থেকে রিমুভ করে দিয়েছে।
সব গুলো আইটেম রিমুভ করতে পারি removeAll ব্যবহার করে।
var int_roman: [Int: String] = [1: "I", 2: "II", 3: "III", 4: "IV", 5: "V"] int_roman.removeAll() print(int_roman)
যা একটা শূন্য ডিকশনারি প্রিন্ট করবে।
সুইফট প্রোগ্রামিং নিয়ে অন্যান্য লেখা গুলো পাওয়া যাবে এখানে। এছাড়া সুইফট ব্যবহার করে আইওএস অ্যাপ ডেভেলপ করা শেখা যাবে এখান থেকে।
Sir your c programming book is so charming. I read that and it impressed me. I learnt a lot of good points from your book.
I am glad you liked my C Book <3