স্কেলার স্টেটমেন্টগুলি সীমিত করতে আমার কি সেমিকোলন ব্যবহার করা উচিত?


9

আমি জাভা থেকে একটি সেমিকোলন দ্বারা বিবৃতি সীমিত করতে ব্যবহৃত হয়, তাই স্বাভাবিকভাবেই আমি এটি স্কালা কোডেও করি। আমিও মনে করি যে কোডটি পড়া সহজ easier কারণ এটি স্পষ্ট ident যেখানে একটি বিবৃতি শেষ হয় এবং অন্যটি শুরু হয়। তবে অনেক সময় যখন আমি এসও-তে স্কাল কোডের একটি টুকরো পোস্ট করি তখন সেমিকোলনগুলি সরিয়ে ফেলার জন্য কোডটি সম্পাদিত হয়।

  1. আমার কি সেমিকোলন ব্যবহার করা উচিত? কোন "অফিসিয়াল" নির্দেশিকা বা কোডিং শৈলী আছে?
  2. সেমিকোলনগুলির প্রয়োজন আছে এমন কোনও ক্ষেত্রে রয়েছে, অন্যথায় কোডটি অস্পষ্ট?

5
হাস্কেল আপনাকে কিছুই শেখায়নি? ; পি অপ্রয়োজনীয় বাক্য গঠনটি সরিয়ে ফেলুন, সেমিকোলনগুলি কেবল একই লাইনে একাধিক ধারা / বিবৃতি ছিন্ন করতে ব্যবহার করা উচিত
জিমি হোফা

@ জিমিহোফা হাস্কেল আমাকে শিখিয়েছিলেন যে সিনট্যাক্স অবশ্যই সুন্দর এবং ধারাবাহিক হতে হবে :)।
পেটর পুদলক

2
এর প্রথম অংশটি হ'ল আমি যখনই স্কলার স্নিপেটগুলি দেখি তখন আমি বিরক্ত হই ...
জিমি হোফা

উত্তর:


9

এটি করার কোনও আনুষ্ঠানিকভাবে "সঠিক" উপায় নেই তবে বেশিরভাগ চিকিত্সকরা যেখানেই পারেন সেমিকোলনগুলি বাদ দেন (এ কারণেই বহু লোক সেমিকোলনগুলি রিফ্লেকসিভলি মুছে ফেলে)।

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


ধন্যবাদ, আপনি কি এই জাতীয় জটিল পরিস্থিতিগুলির উদাহরণ (বা কয়েকটি :) দিতে পারেন?
পেটর পুদলক

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

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

4

আপনি যে ভাষাগুলি ব্যবহার করেন তা আপনি কতটা বুঝতে চান? আপনি কি এর শক্তিতে খেলতে চান নাকি? স্কেলার সিনট্যাক্স পরিষ্কার এবং সংক্ষিপ্ত কোডকে উত্সাহ দেয়; স্কেল পার্সারগুলির জন্য সমস্যার কারণ হ'ল কয়েকটি প্রান্তের ক্ষেত্রে শিক্ষণীয় (যা আপনি স্ক্যালার সাথে মুখোমুখি হয়ে কীভাবে এড়াবেন সেগুলি সম্পর্কে আরও শিখতে পারেন) এবং ধীরে ধীরে স্থির হয়ে উঠছে (যেমন প্রত্যয় চিহ্ন )। ডিফেন্সিয়ালি অর্ধ-কোলন ব্যবহারের অর্থ এই হতে পারে যে আপনাকে কখনই এই সমস্যাগুলি সম্পর্কে জানতে হবে না তবে আপনি কি সত্যই এটি একটি ভাল জিনিস হিসাবে দেখতে পাচ্ছেন? এই সমস্যাগুলির সমাধানগুলির ক্ষেত্রে সাধারণত অন্যান্য জড়িত থাকে তবে আপনি এই সম্ভাবনাগুলি হারাবেন।

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

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


8
-১ হ্যাঁ, সংকলক গোটাসের কারণে ভাষা শিখতে "বাধ্য" করা সি ++ এর সাথে স্টাইলের বাইরে চলে গেছে। এছাড়াও, দাবিগুলির পিছনে খুব সামান্য প্রমাণ নেই, যা আমি এই জাতীয় পক্ষপাতমূলক সুরের সাথে একটি উত্তর চাই।
টেলাস্টিন

(1) @ টেলাস্টিন যা বলেছিলেন - আপনি যদি সত্যিই এইভাবে কোনও ভাষা শিখতে চান, তবে একটি বিড়াল পান, তারা কী-বোর্ডে বসে থাকতে পছন্দ করে কারণ তারা আপনার শিক্ষার বিষয়ে যত্নশীল। (২) অর্ধবৃত্তগুলি ছাড়াই পরিষ্কার শৈলীর সাথে এটি উত্সাহিত করার কোনও সম্পর্ক নেই - যদি কিছু হয় তবে সেমিকোলনগুলি ফেলে দেওয়া সত্যটি আড়াল করে রাখে যে এটি পৃথকভাবে বিবৃতি যা ক্রমান্বয়ে সম্পাদিত হয় এবং সম্ভবত এর পার্শ্ব-প্রতিক্রিয়াও রয়েছে। সেমিকোলনগুলিতে ছেড়ে যাওয়া আপনাকে সে সম্পর্কে সচেতন করে তোলে এবং তাই আরও কার্যকরী শৈলীর পছন্দ করে। সিদ্ধান্তটি তাই নিখরচায় সিনট্যাকটিক (উদাঃ শৈলী, পার্সিং ইত্যাদি)।
এলি বারজিলে

যদিও "ভাষা শিখতে বাধ্য করা" উড়ে না, "ভাষাটিকে লেখকের উদ্দেশ্য হিসাবে ব্যবহার করা" এবং "বেশিরভাগ অন্যান্য বিকাশকারীরা যেমন এটি ব্যবহার করেছেন" গুরুত্বপূর্ণ রেফারেন্স পয়েন্ট। একাধিক বিকাশকারীদের মধ্যে ধারাবাহিক স্টাইল বজায় রাখা দরকারী। এই উত্তর এবং @ কিলান ফথ উভয় থেকেই, রক্ষণাবেক্ষণকারী এবং বেশিরভাগ বিকাশকারীরা স্পষ্টতই সেমিকোলনটিকে বহির্মুখী হিসাবে দেখেন।
সারা মেসার 21
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.