Immutable এবং Mutable Variables

Variables, Data Types এবং Shadowing (ভেরিয়েবলস, ডেটা টাইপস এবং শ্যাডোইং) - রাস্ট (Rust) - Computer Programming

347

Immutable Variables (ইমিউটেবল ভেরিয়েবলস)

রাস্টে ডিফল্টভাবে ভেরিয়েবলগুলি ইমিউটেবল হয়। এর মানে হল যে, আপনি যখন একটি ভেরিয়েবল ডিফাইন করবেন, তখন তার মান পরবর্তী সময়ে পরিবর্তন করা যাবে না। এই নিরাপত্তা বৈশিষ্ট্যটি মেমোরি সেফটি নিশ্চিত করতে সাহায্য করে, কারণ এটি মিউটেশন বা অপ্রত্যাশিত পরিবর্তন থেকে ডেটাকে সুরক্ষিত রাখে।

ইমিউটেবল ভেরিয়েবল ঘোষণা:

fn main() {
    let x = 5;  // x is immutable
    println!("The value of x is: {}", x);

    // Uncommenting the next line will cause an error:
    // x = 10; // error: cannot assign twice to immutable variable `x`
}

এখানে, ভেরিয়েবল x একটি ইমিউটেবল ভেরিয়েবল হিসাবে ঘোষণা করা হয়েছে, যার মান একবার সেট করার পর পরিবর্তন করা যাবে না। যদি আপনি তার মান পরিবর্তন করার চেষ্টা করেন, তাহলে কম্পাইলার একটি ত্রুটি দেখাবে।

Mutable Variables (মিউটেবল ভেরিয়েবলস)

যদি আপনি চান যে একটি ভেরিয়েবল পরিবর্তনযোগ্য (mutable) হতে পারে, তবে আপনাকে mut কীওয়ার্ড ব্যবহার করতে হবে। মিউটেবল ভেরিয়েবলগুলির মান পরে পরিবর্তন করা যায়, তবে এক্ষেত্রে সতর্ক থাকতে হবে যে, একাধিক থ্রেড যদি সেই ভেরিয়েবল অ্যাক্সেস করে, তবে ডেটা রেস বা অন্যান্য কনকারেন্সি সমস্যার সম্ভাবনা থাকতে পারে।

মিউটেবল ভেরিয়েবল ঘোষণা:

fn main() {
    let mut y = 5;  // y is mutable
    println!("The initial value of y is: {}", y);

    y = 10;  // Now we can change the value of y
    println!("The updated value of y is: {}", y);
}

এখানে mut কীওয়ার্ড দিয়ে ভেরিয়েবল y কে মিউটেবল হিসেবে ঘোষণা করা হয়েছে, ফলে আপনি পরে তার মান পরিবর্তন করতে পারবেন।

Immutable এবং Mutable Variables এর মধ্যে পার্থক্য

  • Immutable Variables: একবার মান নির্ধারণের পরে তাদের মান পরিবর্তন করা যায় না। এটি কোডের নিরাপত্তা নিশ্চিত করে এবং মেমোরি সেফটি বজায় রাখে।
  • Mutable Variables: আপনি যেকোনো সময় তাদের মান পরিবর্তন করতে পারেন, তবে এটি কোডে কিছু সতর্কতা এবং সঠিক ব্যবহার নিশ্চিত করতে পারে।

Borrowing এবং Mutability

রাস্টে borrowing এবং mutability সম্পর্কিত কিছু নিয়ম রয়েছে। যখন আপনি একটি মিউটেবল ভেরিয়েবলকে বোরো করেন, তখন সবার জন্য এটি একযোগে একাধিক মিউটেবল রেফারেন্স থাকতে পারে না। তবে আপনি immutable রেফারেন্স দিয়ে একাধিক জায়গায় ডেটা শেয়ার করতে পারেন, কিন্তু mutable রেফারেন্স থাকলে শুধুমাত্র এক জায়গা থেকেই সেটা অ্যাক্সেস করা যাবে।

fn main() {
    let mut x = 5;
    let y = &mut x; // mutable reference
    *y += 1;         // modify the value of x through y
    println!("The value of x is: {}", x);
}

এখানে, x এর একটি মিউটেবল রেফারেন্স y তে দেওয়া হয়েছে, এবং y এর মাধ্যমে x এর মান পরিবর্তন করা হয়েছে।


সারাংশ

  • Immutable Variables: একবার মান দেওয়া হলে পরে পরিবর্তন করা যায় না।
  • Mutable Variables: ভেরিয়েবলটি mut কীওয়ার্ড দিয়ে ঘোষণা করলে তার মান পরিবর্তন করা যায়।
  • রাস্টের Immutable ভেরিয়েবল ডিফল্ট থাকে, যা কোডকে নিরাপদ এবং রেফারেন্সের মাধ্যমে পারফরম্যান্স উন্নত করতে সাহায্য করে, যখন Mutable ভেরিয়েবল পরিবর্তনযোগ্য ডেটার সাথে কাজ করার জন্য ব্যবহৃত হয়।
Content added By
Promotion

Are you sure to start over?

Loading...