স্কালায় প্যারামিটারলেস এবং খালি-প্যারেন পদ্ধতি


10

আমি ওডারস্কির প্রোগ্রামিং স্কালার (দ্বিতীয়) মাধ্যমে এই মুহুর্তে স্কেলা শিখছি। আমি দশম অধ্যায় পর্যন্ত আছি যেখানে তিনি প্যারামিটারলেস এবং খালি-প্যারেন পদ্ধতিগুলি চালু করতে শুরু করেন। আমি কেবল তার চারপাশে আমার মাথা পেতে পারি না।

এখনও অবধি, আমি যা বুঝি তা হ'ল যদি কোনও পদ্ধতিতে পার্শ্ব-প্রতিক্রিয়া এবং প্যারামিটারলেস পদ্ধতি থাকে তবে আমার খালি প্যারেন্স ব্যবহার করা উচিত।

এই সম্মেলনের সুবিধা কী তা আমি বুঝতে পারি না। আমি স্ট্যাক এক্সচেঞ্জে পোস্টগুলি পড়েছি, তবে সত্যি বলতে কী, যখন পোস্টগুলি কিছু গভীরতার সাথে এই বিষয়টি নিয়ে আলোচনা শুরু করে আমি হারিয়ে গিয়েছিলাম।

আমি এই ভাষার বৈশিষ্ট্যটির জন্য সাধারণ ব্যবহারের ক্ষেত্রে কী কী এবং এটি আরও ভালভাবে বুঝতে আমাকে কী কী সুবিধা দিবে তার একটি সহজ ব্যাখ্যা খুঁজছি।

scala 

উত্তর:


14

আমি আপনার প্রশ্নটি নিয়েছিলাম কেন প্রথমে কোনও সম্মেলনের প্রয়োজন রোধ করার জন্য ভাষাটি ডিজাইন করবেন না? অন্য কথায়, স্ক্যালাল প্রোগ্রামারদের মাঝে মাঝে এগুলি বাদ দেওয়ার পরিবর্তে কেন কেবল সর্বদা প্রথম বন্ধনী ব্যবহার বাধ্যতামূলক করে না?

উত্তরটি রেফারেন্সিয়াল স্বচ্ছতার মধ্যে পাওয়া যায় । মূলত, যদি কোনও ফাংশনের কোনও পার্শ্ব প্রতিক্রিয়া না থাকে তবে প্রোগ্রামের আচরণ পরিবর্তন না করে কোনও ফাংশন কল তার ফলাফলের সাথে প্রতিস্থাপন করা যেতে পারে।

এর অর্থ প্যারামিটার বা পার্শ্ব প্রতিক্রিয়াবিহীন কোনও ফাংশন শব্দার্থগতভাবে valসেই ফাংশনের রিটার্ন মান হিসাবে সমান । এই সম্পত্তিটির কারণে, ক্লাসটি বিকশিত হওয়ার সাথে সাথে প্রোগ্রামারটি valসুবিধা বা দক্ষতার আদেশ হিসাবে কোনও ফাংশন ব্যবহার বা ব্যবহারের মধ্যে পিছনে পিছনে স্যুইচ করতে পারে ।

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

এই শ্রেণীর সদস্যটি অবশ্যই একটি ফাংশন কল, এবং সম্ভবত সম্ভাব্যভাবে স্বচ্ছরূপে নয় এমনটি পরিষ্কার করার জন্য পার্শ্ব প্রতিক্রিয়া রয়েছে যখন কনভেনশনটি প্রথম বন্ধনীগুলির পরামর্শ দেয় । পার্শ্ব প্রতিক্রিয়াগুলি উত্পাদিত হয়েছে কিনা তা জানতে কোডিং কোডের পক্ষে এটি গুরুত্বপূর্ণ, যাতে তারা বারবার কল করা এড়াতে পারে। এটি যদি কোনও ফাংশন আছে কিনা তা আপনি যদি খেয়াল না করেন তবে আপনি এটির মতো আচরণও করতে পারেন it's


6

এটি একটি সম্মেলন, ভাষা নকশার অংশ নয়। এটি লোকেদের আরও ভাল করে বোঝার জন্য লেখার পরে কোডটি পড়তে হবে এমন লোকদের সহায়তা করার জন্য এটি একটি সাইনপোস্ট হিসাবে ব্যবহৃত হয়।

থেকে পদ্ধতি আবাহন উপর Scala শৈলী গাইড:

স্ক্যালালতা 0-এর পদ্ধতিতে কোনও বন্ধনী বাদ দেওয়ার অনুমতি দেয় (কোনও যুক্তি নেই):

reply() 

// is the same as 

reply

তবে, এই বাক্য গঠনটি কেবল তখনই ব্যবহার করা উচিত যখন প্রশ্নে থাকা পদ্ধতির কোনও পার্শ্ব-প্রতিক্রিয়া নেই (বিশুদ্ধভাবে কার্যকর) function অন্য কথায়, কল করার সময় বন্ধনী বাদ দেওয়া গ্রহণযোগ্য হবে queue.sizeতবে কল করার সময় তা নয় println()

ধর্মীয়ভাবে এই সম্মেলনটি পর্যবেক্ষণ করা নাটকীয়ভাবে কোড পাঠযোগ্যতার উন্নতি করবে এবং এক নজরে বোঝা আরও সহজ করে দেয় যে কোনও দেওয়া পদ্ধতির সর্বাধিক প্রাথমিক অপারেশন। কেবলমাত্র দুটি অক্ষর সংরক্ষণ করার জন্য প্রথম বন্ধনী বাদ দেওয়ার তাগিদ প্রতিরোধ করুন!

.NET- এ কনভেনশনটি এমন পদ্ধতিগুলি ব্যবহার করা হয় যখন কোডটি চালানোর জন্য কিছুটা সময় নিতে পারে (বলুন, 50 মাইলের চেয়ে বেশি) এবং যখন বৈশিষ্ট্যগুলি (মূলত খালি-প্যারেন পদ্ধতিগুলি) তা ব্যবহার করবে না (অর্থাত এটি একটি সহজ চেহারা)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.