কেন নেটগুলিতে অ্যারে থাকে? জালের দৈর্ঘ্য কিন্তু অন্যান্য সংগ্রহের ধরণের গণনা থাকে? [বন্ধ]


23

উদাহরণস্বরূপ সি # তে অ্যারেগুলির দৈর্ঘ্য সম্পত্তি রয়েছে। তবে অন্যান্য সংগ্রহের ধরণের তালিকাগুলির মতো কাউন্টের সম্পত্তি রয়েছে। এই দুটি পৃথক হওয়ার কোনও কারণ আছে কি? যদি তাই হয় আমি জানতে চাই।


4
আমি আমার লিপার্ট-হুইসেলটি খুঁজে পাচ্ছি না, তাই আমি মনে করি না যে আমরা আজ একটি ভাল উত্তর
পাব

4
কেবল একটি বুনো অনুমান, যেহেতু সিএলআর কীভাবে ডিজাইন করা হয়েছিল সে সম্পর্কে আমার কোনও অভ্যন্তরীণ জ্ঞান নেই: সংগ্রহের ধরণের আগে অ্যারে কীভাবে কাজ করে তার বিশদটি নির্দিষ্ট করা হয়েছিল। সম্পত্তিটির দৈর্ঘ্যকে কল করা এটির জন্য সর্বাধিক প্রাকৃতিক নাম, এবং মেনে চলার জন্য পূর্বনির্মাণের মান নেই, সুতরাং অ্যারের ডিজাইনার এটি ব্যবহার করতে বেছে নিয়েছিলেন। তারপরে সংগ্রহগুলি নির্দিষ্ট করে দেওয়া হয়েছিল, তবে কিছু সংগ্রহের জন্য দৈর্ঘ্য উপযুক্ত নয় (এটি রৈখিকতা বোঝায়, সুতরাং নিখরচায় সংগ্রহের জন্য এটি যুক্তিসঙ্গত নাম নয়) সুতরাং গণনাটিকে আরও যুক্তিযুক্তভাবে সামঞ্জস্যপূর্ণ হিসাবে বেছে নেওয়া হয়েছিল।
জুলে

4
আমার ধারণা এই প্রাক্তন স্ট্যাকওভারফ্লো পোস্টটির সঠিক উত্তর রয়েছে।
ডক ব্রাউন

6
@ মেটাফাইট: আমি সম্প্রতি একাধিক শিক্ষামূলক ভিডিও রেকর্ড করেছি এবং এক পর্যায়ে আমি উল্লেখ করেছি যে ডিজাইনাররা দৈর্ঘ্য এবং গণনা উভয়ই কেন ব্যবহার করেছিলেন তা আমার কোনও ধারণা নেই। এটি আমাকে সর্বদা উদ্ভট বলে মনে করেছে। উপরের জুলসের মন্তব্যটি প্রশংসনীয় বলে মনে হচ্ছে।
এরিক লিপার্ট

3
মেটা নোট - আমি 5 ম ভিটিসি কাস্ট করেছি কারণ আমি বিশ্বাস করি না যে এই প্রশ্নের সুনির্দিষ্ট উত্তর দেওয়া যেতে পারে। বিদ্যমান উত্তরটি একটি দৃ and় এবং প্রশংসনীয় উত্তর, তবে এটি প্রমাণ সহকারে সমর্থন করে না। তেমনি, লিপার্টের মন্তব্য আমাকে ভাবতে পরিচালিত করে যে উত্তরটি কেউ জানে না কারণ এটি একটি সচেতন সিদ্ধান্তের বিপরীতে তদারকির কারণে হতে পারে।

উত্তর:


30

এগুলির নাম আলাদাভাবে রাখা হয়েছে কারণ শব্দার্থকভাবে তারা বেশ আলাদা:

সংগ্রহের গণনা এটি বর্তমানে সঞ্চিত আইটেমের সংখ্যা এবং সময়ের সাথে সাথে সম্ভাব্য পরিবর্তিত হতে পারে।

একটি অ্যারের দৈর্ঘ্য হ'ল এটি সর্বোচ্চ সংখ্যক আইটেম ধারণ করতে পারে (এটিতে 10 টি দৈর্ঘ্য হবে এমনকি যদি আপনি এটিতে প্রচুর আইটেম সংরক্ষণ না করেন) এবং অপরিবর্তনীয়।

উদাহরণ:

যদি আমার কাছে একটি বালতি থাকে যা এটিতে সর্বোচ্চ 100 বলের ফিট করতে পারে তবে এর দৈর্ঘ্য 100 টি I আমি যদি এটিতে 50 টি বল রাখি তবে এটির 50 টি গণনা রয়েছে।

যদি আমি আরও 10 টি বল যোগ করি তবে গণনা 60 হয় তবে দৈর্ঘ্য এখনও 100 হয় the দৈর্ঘ্য পরিবর্তন করতে আমার একটি আলাদা বালতি পেতে হবে।

অ্যারে সম্ভবত দৈর্ঘ্য শব্দটি ব্যবহার করে কারণ হুডের নীচে এটি আইটেমের আকার দ্বারা গুণিত করার ক্ষমতার উপর ভিত্তি করে মেমরির একটি সংক্ষিপ্ত ব্লক (একটি দৈর্ঘ্য) বরাদ্দ করে। যদিও তালিকার শ্রেণি একটি অনুরূপ (যদিও পরিবর্তনীয়) ধারণার জন্য "ক্ষমতা" ব্যবহার করে তা বোঝায় যে অ্যারে Lenতিহাসিক কারণে "দৈর্ঘ্য" শব্দটি ব্যবহার করতে পারে।


12
একটি T[]এন যার দৈর্ঘ্য সবসময় ধরনের ঠিক এন মান সঞ্চয় করে T। শব্দার্থকভাবে, এই সমস্ত মানগুলি অর্থবহ হতে পারে না (তারা nullউদাহরণস্বরূপ হতে পারে ) তবে তারা বিদ্যমান। এটি ক্ষমতার সাধারণ অর্থ থেকে পৃথক ( List<T>উদাহরণস্বরূপ ব্যবহৃত হিসাবে )। আপনি ঠিক আছেন যা না পারলে Countপরিবর্তন Lengthহতে পারে। তারপরে আবার কোনও হুকুম নেই যা Countবাস্তবে পরিবর্তিত হবে। এটি অপরিবর্তনীয় সংগ্রহের জন্যও ব্যবহৃত হয়।

@ ডেলান ওহ প্রিয় ক্যাপাসিটি শব্দটি ইতিমধ্যে সি # তে ব্যবহার করা হয়নি। আমি দুর্ঘটনাক্রমে এটি ওভারলোড করেছি। এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ. আমি পরিষ্কার করতে আমার উত্তর আপডেট করব।
সংযুক্তিবিদ

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

@ স্টুপিডওন: আপনি যদি সেই রাস্তাটি যান তবে যে কোনও অ্যারেতেও একটি ব্যক্তিগত সম্পত্তি থাকা উচিত count
উত্সাহক

1
ড্যাম স্ট্রিংবিল্ডার ... ভিজিলের মতো কঠোর ভাষায় স্ট্রিংবিল্ডার শ্রেণি কনভেনশন github.com/munificent/vigil
ফ্যালকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.