অপ্রচলিত বস্তু বনাম অপরিবর্তনীয় সংগ্রহ
পরিবর্তনীয় বনাম অপরিবর্তনীয় বস্তু নিয়ে বিতর্কের অন্যতম সূক্ষ্ম বিষয় হ'ল সংগ্রহের ক্ষেত্রে অপরিবর্তনীয় ধারণার প্রসারণের সম্ভাবনা। অপরিবর্তনীয় বস্তু এমন একটি বস্তু যা প্রায়শই ডেটার একক লজিকাল কাঠামোকে উপস্থাপন করে (উদাহরণস্বরূপ একটি অপরিবর্তনীয় স্ট্রিং)। যখন আপনার কোনও পরিবর্তনযোগ্য অবজেক্টের রেফারেন্স থাকবে তখন অবজেক্টের সামগ্রী পরিবর্তন হবে না।
অপরিবর্তনীয় সংগ্রহ এমন একটি সংগ্রহ যা কখনও বদলায় না।
আমি যখন কোনও পরিবর্তনীয় সংগ্রহের উপর কোনও ক্রিয়াকলাপ করি, তারপরে আমি সংগ্রহটি স্থানে পরিবর্তন করি এবং সংগ্রহে উল্লেখ করা সমস্ত সত্তা পরিবর্তনটি দেখতে পাবে।
আমি যখন অপরিবর্তনীয় সংগ্রহের উপর একটি ক্রিয়াকলাপ করি তখন পরিবর্তনের প্রতিফলন করে একটি নতুন সংগ্রহকে একটি রেফারেন্স ফিরিয়ে দেওয়া হয়। সংগ্রহের পূর্ববর্তী সংস্করণগুলির উল্লেখ রয়েছে এমন সমস্ত সত্ত্বা পরিবর্তনটি দেখতে পাবে না।
চৌকস বাস্তবায়নের অপরিবর্তনীয়তার জন্য পুরো সংগ্রহটি অনুলিপি (ক্লোন) করা প্রয়োজন হয় না। এর সহজ উদাহরণ হ'ল এককভাবে সংযুক্ত তালিকার হিসাবে প্রয়োগ করা স্ট্যাক এবং পুশ / পপ ক্রিয়াকলাপ। আপনি নতুন সংগ্রহের পূর্ববর্তী সংগ্রহ থেকে সমস্ত নোড পুনরায় ব্যবহার করতে পারেন, কেবল ধাক্কার জন্য একটি একক নোড যুক্ত করতে এবং পপের জন্য কোনও নোড ক্লোনিং করতে পারবেন। অন্যদিকে, একক সংযুক্ত তালিকার মধ্যে পুশ টেইল অপারেশনটি এত সহজ বা দক্ষ নয়।
অপরিবর্তনীয় বনাম পরিবর্তনীয় পরিবর্তনশীল / রেফারেন্স
কিছু কার্যকরী ভাষা কেবল রেফারেন্সের জন্য একটি একক রেফারেন্সের অনুমতি দেয় বলে রেফারেন্সগুলিকে নিজেরাই আপত্তি জানাতে অপরিবর্তনীয়তার ধারণাটি গ্রহণ করে।
- এরলং এ এটি সমস্ত "ভেরিয়েবল" এর ক্ষেত্রে সত্য। আমি একবারে কেবলমাত্র একটি রেফারেন্সে অবজেক্টগুলি বরাদ্দ করতে পারি। আমি যদি কোনও সংগ্রহ পরিচালনা করে থাকি তবে আমি পুরানো রেফারেন্সে (পরিবর্তনশীল নাম) নতুন সংগ্রহটি পুনরায় সাইন করতে সক্ষম হব না।
- স্কালা এটিকে ভাষাতে ভের বা ভ্যাল দিয়ে ঘোষিত সমস্ত রেফারেন্স সহ ভাষাতেও তৈরি করে , ভ্যালস কেবলমাত্র একক কার্যনির্বাহী এবং কার্যকরী শৈলীর প্রচার করে, তবে ভারগুলি আরও সি-জাতীয় বা জাভা-জাতীয় প্রোগ্রাম কাঠামোর অনুমতি দেয়।
- ভেরি / ভ্যালার ডিক্লেয়ারেশন প্রয়োজনীয়, যখন প্রচলিত অনেক ভাষা avaচ্ছিক সংশোধক যেমন জাভাতে চূড়ান্ত এবং সি-এ কনস্টের ব্যবহার করে use
ইজ অফ ডেভলপমেন্ট বনাম পারফরম্যান্স
প্রায় সর্বদা অপরিবর্তনীয় বস্তু ব্যবহারের কারণ হ'ল পার্শ্ব প্রতিক্রিয়া মুক্ত প্রোগ্রামিং এবং কোড সম্পর্কে সাধারণ যুক্তি (বিশেষত একটি উচ্চতর যুগ্ম / সমান্তরাল পরিবেশে) প্রচার করা। যদি অবজেক্টটি অপরিবর্তনীয় থাকে তবে আপনাকে অন্তর্নিহিত ডেটা অন্য সত্তার দ্বারা পরিবর্তিত হওয়ার বিষয়ে চিন্তা করার দরকার নেই।
প্রধান অসুবিধা হল পারফরম্যান্স। খেলনা সমস্যাটিতে কিছু অপরিবর্তনীয় বনাম পরিবর্তনযোগ্য বস্তুর তুলনা করে জাভাতে করা একটি সাধারণ পরীক্ষার উপর এখানে একটি লেখার রচনা রয়েছে ।
পারফরম্যান্স ইস্যুগুলি অনেকগুলি অ্যাপ্লিকেশনগুলিতে বিচলিত হয় তবে সবগুলিই নয়, এ কারণেই পাইথনের নম্পি অ্যারে শ্রেণির মতো অনেক বড় সংখ্যাগত প্যাকেজগুলি বড় অ্যারেগুলির ইনপ্লেস আপডেটের অনুমতি দেয়। বৃহত্তর ম্যাট্রিক্স এবং ভেক্টর ক্রিয়াকলাপ ব্যবহার করে এমন অ্যাপ্লিকেশন ক্ষেত্রগুলির জন্য এটি গুরুত্বপূর্ণ। এই বৃহত ডেটা সমান্তরাল এবং কম্পিউটেশনাল ইনটেনসিভ সমস্যাগুলি জায়গায় কাজ করে একটি দুর্দান্ত গতি অর্জন করে।
string
অন্তত। নেট এ অপরিবর্তনীয় এবং আমি অন্যান্য অনেক আধুনিক ভাষায়ও ভাবি।