আমি আপনার প্রশ্নটি নিয়েছিলাম কেন প্রথমে কোনও সম্মেলনের প্রয়োজন রোধ করার জন্য ভাষাটি ডিজাইন করবেন না? অন্য কথায়, স্ক্যালাল প্রোগ্রামারদের মাঝে মাঝে এগুলি বাদ দেওয়ার পরিবর্তে কেন কেবল সর্বদা প্রথম বন্ধনী ব্যবহার বাধ্যতামূলক করে না?
উত্তরটি রেফারেন্সিয়াল স্বচ্ছতার মধ্যে পাওয়া যায় । মূলত, যদি কোনও ফাংশনের কোনও পার্শ্ব প্রতিক্রিয়া না থাকে তবে প্রোগ্রামের আচরণ পরিবর্তন না করে কোনও ফাংশন কল তার ফলাফলের সাথে প্রতিস্থাপন করা যেতে পারে।
এর অর্থ প্যারামিটার বা পার্শ্ব প্রতিক্রিয়াবিহীন কোনও ফাংশন শব্দার্থগতভাবে val
সেই ফাংশনের রিটার্ন মান হিসাবে সমান । এই সম্পত্তিটির কারণে, ক্লাসটি বিকশিত হওয়ার সাথে সাথে প্রোগ্রামারটি val
সুবিধা বা দক্ষতার আদেশ হিসাবে কোনও ফাংশন ব্যবহার বা ব্যবহারের মধ্যে পিছনে পিছনে স্যুইচ করতে পারে ।
যেহেতু আপনি প্রথম বন্ধনী বাদ দিতে পারেন, এর অর্থ কোড কোড কল queue.size
করার size
জন্য কোনও ফাংশন বা ক হয় এমন কিছু জানা বা যত্ন নেওয়ার দরকার নেই val
। Queue
শ্রেণীর প্রয়োগকারীগণ কলিং কোডের কোনও পরিবর্তন না করেই উভয়ের মধ্যে পরিবর্তন করতে নিখরচায় (যদিও আমি বিশ্বাস করি এটি পুনরায় সংশোধনের প্রয়োজন হবে)। এটি শ্রেণীর পাবলিক ইন্টারফেসকে স্থিতিশীল করে। উদাহরণস্বরূপ, যদি আপনি একটি শুরু হতে পারে queue.size
কল করে size
একটি অন্তর্নিহিত উপর List
, যা সম্ভাব্য O(n)
, তারপর পরিবর্তন size
একটি থেকে val
কার্যকারিতা কারণে।
এই শ্রেণীর সদস্যটি অবশ্যই একটি ফাংশন কল, এবং সম্ভবত সম্ভাব্যভাবে স্বচ্ছরূপে নয় এমনটি পরিষ্কার করার জন্য পার্শ্ব প্রতিক্রিয়া রয়েছে যখন কনভেনশনটি প্রথম বন্ধনীগুলির পরামর্শ দেয় । পার্শ্ব প্রতিক্রিয়াগুলি উত্পাদিত হয়েছে কিনা তা জানতে কোডিং কোডের পক্ষে এটি গুরুত্বপূর্ণ, যাতে তারা বারবার কল করা এড়াতে পারে। এটি যদি কোনও ফাংশন আছে কিনা তা আপনি যদি খেয়াল না করেন তবে আপনি এটির মতো আচরণও করতে পারেন it's