টিসিএল (Tcl) - Indexed এবং Associative Arrays ব্যবহার
টিসিএল (Tcl) একটি ডাইনামিক স্ক্রিপ্টিং ভাষা, যা বিভিন্ন ধরনের অ্যারে ব্যবহারের সুবিধা প্রদান করে। এখানে আমরা Indexed Arrays এবং Associative Arrays নিয়ে আলোচনা করব।
১. Indexed Arrays
Indexed Arrays হল এমন অ্যারে, যেখানে প্রতিটি মান একটি ইন্টিজার ইনডেক্স দিয়ে অ্যাক্সেস করা হয়। সাধারণত, ইনডেক্সগুলি ধারাবাহিক হয় এবং সংখ্যাগত মান ধারণ করে।
Indexed Arrays ডিক্লারেশন এবং ব্যবহার:
টিসিএল-এ Indexed Arrays ডিক্লেয়ার করার জন্য array কমান্ড ব্যবহার করা হয় না, তবে সাধারণত ভেরিয়েবল নামের পরে set কমান্ড দিয়ে ইনডেক্সযুক্ত অ্যারে তৈরি করা হয়।
উদাহরণ:
# Indexed array তৈরি
set arr(0) "apple"
set arr(1) "banana"
set arr(2) "orange"
# অ্যারে মান অ্যাক্সেস করা
puts $arr(0) ;# আউটপুট: apple
puts $arr(1) ;# আউটপুট: banana
puts $arr(2) ;# আউটপুট: orangeএখানে, arr একটি Indexed Array যা 0, 1, এবং 2 ইনডেক্সের সাথে মান ধারণ করে।
Indexed Arrays ব্যবহার:
Indexed Arrays সাধারণত সিকোয়েন্সাল ডেটা সংরক্ষণ করতে ব্যবহৃত হয়, যেমন মাসের নাম, দিনের নাম, বা বিভিন্ন মানের সিকোয়েন্স।
উদাহরণ:
set days(0) "Sunday"
set days(1) "Monday"
set days(2) "Tuesday"
set days(3) "Wednesday"
set days(4) "Thursday"
set days(5) "Friday"
set days(6) "Saturday"
puts "The first day of the week is: $days(0)"এখানে, সপ্তাহের দিনগুলো একটি Indexed Array হিসেবে সংরক্ষিত হয়েছে, যেখানে প্রতিটি দিন একটি নির্দিষ্ট ইনডেক্সের মাধ্যমে অ্যাক্সেস করা হয়।
২. Associative Arrays
Associative Arrays হল এমন অ্যারে, যেখানে মানগুলি একটি কী (key) দ্বারা অ্যাক্সেস করা হয়, এবং কীগুলি সাধারণত স্ট্রিং হতে পারে। এটি একটি ম্যাপিং বা ডিকশনারি স্টাইল অ্যারে, যেখানে কীগুলি মানগুলোর সাথে সম্পর্কিত থাকে।
Associative Arrays ডিক্লারেশন এবং ব্যবহার:
টিসিএল-এ Associative Arrays তৈরি করতে array কমান্ড ব্যবহার করা হয়। এখানে, কীগুলির মাধ্যমে মান অ্যাক্সেস করা হয়, যা স্ট্রিং বা অন্য যেকোনো ডেটা টাইপ হতে পারে।
উদাহরণ:
# Associative array তৈরি
array set person {name "Azizur" age 25 profession "Developer"}
# অ্যারে মান অ্যাক্সেস করা
puts $person(name) ;# আউটপুট: Azizur
puts $person(age) ;# আউটপুট: 25
puts $person(profession) ;# আউটপুট: Developerএখানে, person একটি associative array, যার মধ্যে name, age, এবং profession কীগুলির সাথে মান সম্পর্কিত রয়েছে।
Associative Arrays ব্যবহার:
Associative Arrays সাধারণত এমন ডেটা সংরক্ষণ করতে ব্যবহৃত হয়, যেখানে কীগুলির মাধ্যমে মান দ্রুত অ্যাক্সেস করা সম্ভব।
উদাহরণ:
array set studentGrades {John 85 Sarah 90 Bob 78 Alice 92}
# অ্যারে থেকে মান অ্যাক্সেস করা
puts "John's grade: $studentGrades(John)"
puts "Sarah's grade: $studentGrades(Sarah)"
puts "Bob's grade: $studentGrades(Bob)"এখানে, studentGrades একটি associative array, যা ছাত্রদের নাম (কী) এবং তাদের গ্রেড (মান) ধারণ করছে।
৩. Associative Arrays এবং Indexed Arrays এর মধ্যে পার্থক্য
| বিষয় | Indexed Array | Associative Array |
|---|---|---|
| কী (Key) | সংখ্যা বা ধারাবাহিক ইনডেক্স | স্ট্রিং বা অন্য যেকোনো কাস্টম কী |
| কিভাবে অ্যাক্সেস করা হয় | ইনডেক্স ব্যবহার করে মান অ্যাক্সেস করা হয় | কী ব্যবহার করে মান অ্যাক্সেস করা হয় |
| ব্যবহার | সিকোয়েন্সাল ডেটা সংরক্ষণ | ম্যাপিং বা ডিকশনারি টাইপ ডেটা সংরক্ষণ |
| উদাহরণ | মাসের নাম বা দিনের নামের জন্য ব্যবহৃত হয় | নাম-গ্রেড, নাম-পিতা-মাতা সম্পর্কিত ডেটা |
৪. Associative Arrays এর সাথে কাজ করার অন্যান্য কমান্ড
৪.১. array get কমান্ড
array get কমান্ডের মাধ্যমে আপনি একটি অ্যারের সমস্ত কী এবং মান পেতে পারেন।
উদাহরণ:
array set student {John 85 Sarah 90 Bob 78 Alice 92}
array get studentএখানে, array get কমান্ডটি সমস্ত student অ্যারের কীগুলোর সাথে মান প্রিন্ট করবে।
৪.২. array names কমান্ড
array names কমান্ডের মাধ্যমে অ্যারের সমস্ত কী পাওয়া যায়।
উদাহরণ:
array set student {John 85 Sarah 90 Bob 78 Alice 92}
set keys [array names student]
puts $keys ;# আউটপুট: John Sarah Bob Aliceএখানে, array names কমান্ডটি student অ্যারের সমস্ত কী (student নামের ছাত্রদের) রিটার্ন করবে।
৪.৩. array size কমান্ড
array size কমান্ডের মাধ্যমে অ্যারের আকার (অর্থাৎ, কতটি কী আছে) পাওয়া যায়।
উদাহরণ:
array set student {John 85 Sarah 90 Bob 78 Alice 92}
set size [array size student]
puts $size ;# আউটপুট: 4এখানে, array size কমান্ডটি student অ্যারের মোট কীগুলির সংখ্যা রিটার্ন করবে, যা ৪।
উপসংহার
টিসিএল-এ Indexed Arrays এবং Associative Arrays ব্যবহারের মাধ্যমে আপনি সহজেই ডেটা সংরক্ষণ এবং অ্যাক্সেস করতে পারেন। Indexed Arrays সিকোয়েন্সাল ডেটার জন্য উপযুক্ত, যেখানে মান ইনডেক্সের মাধ্যমে অ্যাক্সেস করা হয়, আর Associative Arrays বিভিন্ন কী-এর মাধ্যমে সম্পর্কিত মানের সংরক্ষণ এবং অ্যাক্সেস করার জন্য ব্যবহৃত হয়। এগুলোর ব্যবহারে কোড আরও কার্যকরী, দ্রুত এবং পরিষ্কার হয়ে ওঠে।
Read more