Immutable এবং Const এর ব্যবহার
ডি প্রোগ্রামিং ভাষায় immutable এবং const দুটি কীওয়ার্ড রয়েছে, যা ভেরিয়েবলগুলোর মান পরিবর্তন করতে নিয়ন্ত্রণ প্রদান করে। এগুলোর ব্যবহারের মাধ্যমে আপনি কোডের নির্ভরযোগ্যতা এবং নিরাপত্তা নিশ্চিত করতে পারেন। তবে, এদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্যও রয়েছে, যা ব্যবহারের সময় বোঝা জরুরি।
1. const কীওয়ার্ড
const কিওয়ার্ডটি ডি প্রোগ্রামিং ভাষায় একটি ভেরিয়েবলের মান স্থির করে দেয়, অর্থাৎ একবার সেট করা হলে ওই ভেরিয়েবলের মান পরিবর্তন করা যাবে না। তবে, const ভেরিয়েবলটি শুধুমাত্র সেই স্কোপের মধ্যে অপরিবর্তনীয় থাকে, যেখানে এটি ডিক্লেয়ার করা হয়। এটি রানটাইমে মান পরিবর্তন বন্ধ করে, কিন্তু রUNTIME এর আগে ভেরিয়েবলটি পরিবর্তন করা যায় যদি তা অন্য ফাংশন বা কনস্ট্রাক্টে হয়।
const এর ব্যবহার:
const int maxAge = 100;
void main() {
maxAge = 150; // এই লাইনটি ত্রুটি দিবে কারণ maxAge কনস্ট্যান্ট ভেরিয়েবল
}এখানে:
maxAgeএকটি কনস্ট্যান্ট ভেরিয়েবল, যা একবার ইনিশিয়ালাইজ হওয়ার পর পরিবর্তন করা যাবে না।constদ্বারা সেট করা মান স্থির থাকে।
2. immutable কীওয়ার্ড
immutable কিওয়ার্ডটি ভেরিয়েবলকে এমনভাবে সেট করে, যেটি শুধুমাত্র একবারই নির্ধারণ করা যেতে পারে এবং পরে তার মান কোনওভাবে পরিবর্তন করা যায় না, এমনকি এই ভেরিয়েবলটি যদি একটি অবজেক্ট বা ডেটা স্ট্রাকচারও হয়। এটি একটি শক্তিশালী নিরাপত্তা বৈশিষ্ট্য প্রদান করে, বিশেষ করে যখন আপনি ডেটার একক প্রপার্টি বা অবজেক্টের নির্দিষ্ট অবস্থান রক্ষা করতে চান।
immutable এর ব্যবহার:
immutable int maxValue = 100;
void main() {
maxValue = 150; // এই লাইনটি ত্রুটি দিবে কারণ maxValue একটি immutable ভেরিয়েবল
}এখানে:
maxValueএকটিimmutableভেরিয়েবল, যা একবার নির্ধারিত হওয়ার পর কোনভাবেই পরিবর্তন করা যাবে না, এমনকি এটি একটি অবজেক্ট বা আরেকটি ডেটা স্ট্রাকচারও হলে।
immutable এবং অবজেক্ট:
immutable string name = "Alice";
immutable Person p = new Person("Alice", 30);
void main() {
p.name = "Bob"; // ত্রুটি হবে কারণ p একটি immutable অবজেক্ট
}এখানে:
immutableদিয়ে ডেক্লেয়ার করা অবজেক্টটির প্রপার্টি বা ভ্যালু পরিবর্তন করা যাবে না। যদিও অবজেক্টের ভেরিয়েবলটিmutableহতে পারে, কিন্তু তার প্রপার্টি বা ডেটা যদিimmutableহয়, তাহলে তা পরিবর্তন করা যাবে না।
3. const এবং immutable এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | const | immutable |
|---|---|---|
| অপারেশন | কম্পাইল টাইমে প্রভাব ফেলে। | রানটাইমে অবজেক্টের পরিবর্তন প্রতিরোধ করে। |
| ভেরিয়েবল পরিবর্তন | ভেরিয়েবলটি কম্পাইল টাইমে অপরিবর্তনীয় থাকে। | একবার সেট হওয়া পর তার মান পরিবর্তন করা যায় না। |
| স্কোপ | একটি নির্দিষ্ট স্কোপে কাজ করে। | এটি সম্পূর্ণ অবজেক্টের উপর প্রভাব ফেলে। |
| অবজেক্টের ক্ষেত্র | সাধারণত একক ভেরিয়েবলে ব্যবহার করা হয়। | অবজেক্টের সম্পূর্ণ ক্ষেত্র নির্দিষ্ট করতে ব্যবহৃত হয়। |
সারসংক্ষেপ
const: এটি কম্পাইল টাইমে ভেরিয়েবলের মান অপরিবর্তনীয় করে তোলে। এটি শুধুমাত্র স্কোপের মধ্যে কাজ করে এবং একবার সেট করা মান পরিবর্তন করা যায় না।immutable: এটি ভেরিয়েবল বা অবজেক্টের মান পুরোপুরি পরিবর্তন থেকে রক্ষা করে, এমনকি তার প্রপার্টি বা ক্ষেত্রগুলোও নিরাপদ থাকে। এটি ডেটার অখণ্ডতা বজায় রাখতে ব্যবহৃত হয়।
এগুলো ব্যবহারের মাধ্যমে আপনি কোডের নিরাপত্তা ও অখণ্ডতা বৃদ্ধি করতে পারবেন, এবং নিশ্চিত করতে পারবেন যে কোন ভুল বা অপ্রত্যাশিত পরিবর্তন আপনার ডেটা বা ভেরিয়েবলগুলিকে প্রভাবিত করবে না।
Read more