নেস্টেড মন্তব্যের সমস্যা কীভাবে সমাধান করবেন


23

এটি কেবল একটি ভাষায় নয় যা মন্তব্যগুলিকে বাসাতে পারে না। আপনার কি এই সমস্যার ভাল সমাধান আছে? সি / সি ++ এবং জাভাতে একটি কাজ হ'ল কেবল একক-লাইন মন্তব্য ব্যবহার করা তবে এটির পরে বৃহত্তর ব্লকটি মন্তব্য করা অসম্ভব হয়ে পড়ে। আমি এরকম কিছু মুখোমুখি হয়েছি:

</li><!--
                <li><!-- Save -->

সুতরাং আমি নিজে ম্যানুয়ালি যেতে হবে এবং মন্তব্য সম্পাদনা করতে হবে। আপনি কীভাবে আমাদের পরামর্শ দিতে পারেন যে আমাদের এটি বেশ কয়েকটি ভাষায় পরিচালনা করতে হবে? আমি নিশ্চিত নই তবে সম্ভবত পাইথনের একটি সমাধান রয়েছে '''যেভাবে #অজগরটিতে একটি মন্তব্য অন্তর্ভুক্ত করতে সক্ষম হতে পারে ? `


4
আমি মনে করি কেবল সম্পাদকরা সেখানে আপনাকে সহায়তা করতে পারে। আইডিএল যদিও পাইথন আইআইআরসি-তে আপনার জন্য মন্তব্য বন্ধ করবে।
এরিক রেপেন

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

7
সি / সি ++ এ আপনি #if 0< / c >> ব্যবহার করে বড় বিভাগগুলি সরাতে চাইলে #endif। সুতরাং এটি আসলে কোনও সমস্যা নয়। এটি করার জন্য মন্তব্য ব্যবহার করা ভুল সরঞ্জাম।
মার্টিন ইয়র্ক

1
আমি অনেক আগেই কেবল লাইন মন্তব্য ব্যবহার করতে শুরু করেছি (যতক্ষণ না আমি বাধ্য হই না যেমন, জাভাদোক)। অবশ্যই আপনার সম্পাদক সমর্থন (বা কমপক্ষে কলাম মোড) প্রয়োজন।
ziggystar

উত্তর:


46

সর্বোত্তম সমাধানটি হ'ল আপনার মন্তব্যগুলিকে বাসা বাঁধাই নয়। নেস্টেড মন্তব্যগুলি সাধারণত এমন একটি চিহ্ন যে আপনি মন্তব্যগুলি ভুল ব্যবহার করছেন। সর্বাধিক সাধারণ উদাহরণ মন্তব্য-আউট কোড যা এতে নিজস্ব মন্তব্য রয়েছে এবং ঠিক করা কোডটি মন্তব্য করার পরিবর্তে অপসারণ করা।

এটি বলেছিল যে, অনেক প্রোগ্রামিং ভাষায় একাধিক ধরণের মন্তব্য সিনট্যাক্স থাকে এবং আপনি এই সত্যটি কমপক্ষে এক স্তর গভীর করে বাসাতে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, জাভাতে:

/* This is commented out!
Foo.bar.baz();
// And now for something completely different...
Quux.runWith(theMoney);
*/

এছাড়াও, অনেক ভাষায়, কমপক্ষে এক ধরণের মন্তব্য হ'ল বাসা বাঁধে; সি-জাতীয় ভাষায়, লাইনের মন্তব্যের অভ্যন্তরে মন্তব্যগুলি উপেক্ষা করা হয়:

// some_commented_out(code);
// // This is a comment inside the comment!
// // Still inside the nested comment.
// some_more_code_in(outer_comment);

বেশিরভাগ IDEs এক ক্রমে লাইন মন্তব্য সহ কোডের পুরো ব্লকগুলি মন্তব্য করার পক্ষে সমর্থন করে এবং তারা এই ধরণের মন্তব্য করার স্টাইলটি সঠিকভাবে পরিচালনা করে। পাইথনে একই উদাহরণ:

# some_commented_out(code)
# # This is a comment inside the comment!
# # Still inside the nested comment.
# some_more_code_in(outer_comment)

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

/**
 * Helper class to store Foo objects inside a bar.
 */
public class Foobar {
    /**
     * Stores a Foo in this Foobar's bar, unless the bar already contains
     * an equivalent Foo.
     * Returns the number of Foos added (always 0 or 1).
     */
    public int storeFoo(Foo foo) {
        // Don't add a foo we already have!
        if (this.bar.contains(foo)) {
            return 0;
        }
        // OK, we don't have this foo yet, so we'll add it.
        this.bar.append(foo);
        return 1;
    }
}

এই জাতীয় শৈলীর সাথে, এটির সম্ভাবনা কম /* */; এবং //মন্তব্য না আপনার আইডিই থেকে সামান্য সাহায্যে অন্তত নীড়।

শেষ অবধি, কোডটি অক্ষম করতে আপনার কাছে অনেকগুলি প্রোগ্রামিং ভাষায় অন্যান্য বিকল্প রয়েছে; উদাহরণস্বরূপ, সি-তে আপনি প্রিপ্রোসেসরটি উত্তোলন করতে পারেন:

this_is(activated);
#if 0
this_is(!activated);
/* Comments inside this block don't really nest, they are simply removed
   along with the rest of the block! */
#endif

গতিশীল ভাষাগুলিতে, আপনি প্রায়শই এর ifপরিবর্তে কেবল নিয়মিত বিবৃতি ব্যবহার করতে পারেন :

<?php

if (0) {
   // This should never run... 
   some_stuff_that_should_never_run();
}

তবে, সিপিপির উদাহরণের বিপরীতে, এই কৌশলটির সামগ্রিকভাবে উত্স ফাইলটি সিনথেটিকভাবে বৈধ হওয়ার প্রয়োজন, সুতরাং এটি এতটা নমনীয় নয়।

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


2
এসকিউএল এর কিছু বৈকল্পিক নেস্টেড মন্তব্যের অনুমতি দেয়?
জাভিয়ের কমবেল

3
+1 এর জন্য// And now for something completely different...
ভোরাক

1
@ ভোরাক: আপনি রেফারেন্সটি পছন্দ করেছেন: ডি
টিডামার্স

18

সি এবং সি ++ এর নেস্টেড ব্লক মন্তব্যগুলি রয়েছে:

#if 0
#endif

অনেক হাইলাইটিং এডিটররা এটিকে একটি মন্তব্য হিসাবে বোঝেন এবং আরও অনেকে কমপক্ষে একে অন্য শর্তাধীন অক্ষম কোড হিসাবে হাইলাইট করবেন।

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

এক্সএমএল এবং এসজিএমএল সম্ভবত সবচেয়ে বড় ব্যথা, এটির মন্তব্য সংজ্ঞাটি কেবল বোকা। মন্তব্যগুলি নীড়ের কাছে তুচ্ছ ছিলো, তবে তারা কেবল তা নয়, --অভ্যন্তরীণ মন্তব্য করা সম্পূর্ণ নিষিদ্ধ । দুর্ভাগ্যক্রমে আমি জানি না যে কোন সম্পাদকদের এসজিএমএল / এক্সএমএলে মন্তব্য করার জন্য ভাল সমর্থন আছে।


2
এই প্রিপ্রসেসর নির্দেশিকাগুলিকে প্রকৃত মন্তব্য হিসাবে ব্যবহার করার কথা কখনও ভাবেননি। আকর্ষণীয়, সি # এর জন্যও, তবে #if _সেক্ষেত্রে আপনাকে এমন কিছু করতে হবে যা ভাল কাজ করে এবং আমার # ভিতে রে # দিয়ে গ্রেড হয়ে যায়। সুন্দর টিপ!
হতাশার গ্রিমাস

2

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

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


0

এইচটিএমএল / এক্সএমএল ক্ষেত্রে আপনি একটি বিদ্যমান বিদ্যমান প্রসেসিং নির্দেশ ব্যবহার করতে পারেন: এসও তে আমার উত্তর দেখুন

<?ignore
  <band height="20">
    <staticText>
      <reportElement x="180" y="0" width="200" height="20"/>
      <text><![CDATA[Hello World!]]></text>
    </staticText>
  </band>
?>
</detail>

0

সুইফ্ট নেস্টেড মন্তব্যগুলিকে সমর্থন করে তাই "মন্তব্যগুলি বাসা বাঁধতে পারে না এমন একটি ভাষায়ই এটি উপস্থিত হয়" আর সত্যিকারের বক্তব্য নেই। আপনি যদি আপনার প্রোগ্রামিং ল্যাঙ্গুয়েজে নেস্টেড মন্তব্যের জন্য সমর্থনের অভাব নিয়ে অসন্তুষ্ট হন তবে আমি সুইফটকে একবার চেষ্টা করার পরামর্শ দেব।

/* This is the start of the first multiline comment.
 /* This is the second, nested multiline comment. */
 This is the end of the first multiline comment. */

সুইফ্ট প্রোগ্রামিং ভাষা: মূল বিষয়গুলি


0

ডি প্রোগ্রামিং ল্যাঙ্গুয়েজ এতে অন্তর্নির্মিত মন্তব্যগুলিকে নেস্ট করেছে:

/+ This is a nested comment 
  /+ This is part of that a comment +/
  /* So is this */
+/
/+ /* This is another nested comment */ +/
/* /* This is not a nested comment */

অন্য কথায়, /+এবং +/মন্তব্য নীড়।

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