ক্লোজারে মন্তব্যগুলি ব্লক করুন


119

ক্লোজুরে আমি কীভাবে একাধিক লাইনে মন্তব্য করব?

উত্তর:


145

আসলে, একটি উপায় আছে!


(comment

(defn hey [] ("Hey there!"))

Check me out! )

আপনার মন্তব্যগুলিকে কেবল (মন্তব্য ..) মোড়ানো করুন :)

আনন্দ কর!


4
আমি ভেবেছিলাম আইডি আমার # || # তে মিস হচ্ছে তবে এটি আরও ভাল।
unj2

4
আমি আশা করি আপনি ক্লোজুরে নিয়ে মজা করছেন। :)
রায়্ন

14
একটি সতর্কতার শব্দ: এটি দেখে মনে হচ্ছে একটি (মন্তব্য ...) এর ভিতরে যা আছে তা সঠিক ফর্ম হওয়া দরকার; যেমন (মন্তব্য হ্যালো: বিশ্ব) ঠিক আছে তবে (মন্তব্য হ্যালো: বিশ্ব) একটি ব্যতিক্রম ফল দেয়। [সম্পাদনা:] দেখে মনে হচ্ছে এই মন্তব্যটি পোস্ট করার আগে গ্রেগ হিউগিলের উত্তরটি আমার পড়া উচিত ছিল ... ওহ ভাল, কেউ যদি আমার মতো কাজ করে তবে আমি এটিকে যাইহোক ছেড়ে দেব।
পাউল

19
সতর্কতার একটি শব্দ - (মন্তব্য) ম্যাক্রো শূন্যে প্রসারিত। একটি একক ফর্ম মন্তব্য করতে #_, বা শূন্য প্রবেশাধিকার না দিয়ে একাধিক ফর্ম মন্তব্য করতে #_ (মন্তব্য ...) ব্যবহার করুন।
আপনার মোডের সাথে ভাল আচরণ করুন

এটি আমাকে এই ম্যাক্রোটির স্মরণ করে: স্ট্যাকওভারফ্লো.com
ফিলিপ ২

100

Clojure একটি #_পাঠক ম্যাক্রো সমর্থন করে যা সম্পূর্ণরূপে পরবর্তী ফর্মটি এড়িয়ে যায়। ক্লোজার রিডার সম্পর্কে এটি পৃষ্ঠায় উল্লেখ করা হয়েছে । রয়েছে মন্তব্য ম্যাক্রো যা অনুরূপ প্রভাব রয়েছে, কিন্তু ভিন্নভাবে বাস্তবায়িত হয়।

উপরের উভয়ের উভয়েরই প্রয়োজন যে আপনি যে জিনিসটি মন্তব্য করছেন তা অন্যথায় সিন্ট্যাক্টিক্যালি সঠিক এস-এক্সপ্রেশন।

কিছু লিস্প উপভাষায় একটি মাল্টি-লাইন মন্তব্য রয়েছে যা স্বেচ্ছাসেবী পাঠ্য থাকতে পারে, তবে আমি ক্লোজারের জন্য একটিও দেখতে পাচ্ছি না।


19
একটি ক্লোজার বহু-লাইনের স্বেচ্ছাসেবী-পাঠ্য মন্তব্য ফর্মটি বিদ্যমান নেই। আমি # | ...... | # মন্তব্য যুক্ত করে একটি প্যাচ জমা দিয়েছি, তবে এটি পছন্দসই বৈশিষ্ট্য হিসাবে প্রত্যাখ্যান করা হয়েছিল। সুতরাং এটি শীঘ্রই যে কোনও সময় যুক্ত হওয়ার সম্ভাবনা নেই।
amalloy

5
@ মলয়: যুক্তি কী ছিল? শুধু দরকার নেই, নাকি আপত্তি ছিল?
টেড

2
আমি প্রায়শই সাক্ষর প্রোগ্রামিং শৈলীর অনুকরণে দীর্ঘ মন্তব্য লিখি। আমি কেবল মাল্টিলাইন মন্তব্যগুলি পুনরায় প্রবাহের জন্য ইম্যাক্স ব্যবহার করি ( *scratch*বাফারে, একাধিক লাইনের পরে ; ;;বা কিছু জঙ্ক টাইপ ;;;করুন, সেমিকোলনের পরে প্রথম শব্দের উপর কার্সারটি চাপুন, এবং টিপুন Meta-Q)।
রেব.কবিন

25

ডাবল উদ্ধৃতি (স্ট্রিং আক্ষরিক) স্বেচ্ছাচারী পাঠ্য যোগ করার অনুমতি দেয় (কেবলমাত্র সঠিক এস-ফর্মগুলি নয়):

(comment "

public class HelloWorld {
    public static void main(String[] args) {
        System.out.print("Hello, World");
        System.out.println();
    }
}

")

4
আমার জন্য কাজ করে যে দুর্দান্ত কৌশল! কিন্তু কীভাবে এটি সম্ভব যে "হ্যালো ওয়ার্ল্ড" এর উদ্ধৃতিগুলি পালানোর দরকার নেই?
ম্যারাথন

6
এটা শুধু ভাগ্য। ইভানের উদাহরণটি 4 টি রূপে বিভক্ত: প্রথম রূপটি একটি স্ট্রিং, দ্বিতীয় রূপটি প্রতীক Hello, তৃতীয় রূপটি প্রতীক World, এবং 4 র্থ রূপটি অন্য স্ট্রিং। commentশুধু সমস্ত ফর্ম উপেক্ষা। সুতরাং উদাহরণস্বরূপ আমরা ভাগ্যবান যে Hello, Worldআইনী ক্লোজার হিসাবে পার্স করে। এটি নির্বিচারে পাঠ্য দিয়ে কাজ করে না। উদাহরণস্বরূপ, (comment "print("/foo")")ত্রুটি সহ মারা যাবে Invalid token: /foo
জন

17

অন্যান্য উদাহরণ দুর্দান্ত, আমি আরও একটি কৌশল যুক্ত করতে চাই:

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

এই ক্ষেত্রে আমি কোডটি মোড়াতে চাই (fn [] .....)যার অর্থ এটি এখনও সংকলিত হয়, এটি কল হয় না।



9

ইমাস এবং সিডার ব্যবহার করার সময়, একটি কমান্ড থাকে M-x comment-regionযা আমি প্রায়শই ব্যবহার করি।


2

ইমাসে আপনি কমান্ডটি ব্যবহার করতে পারেন M-;(এর জন্য শর্টকাট M-x comment-dwim)। এটি পাঠ্য / কোডের যে কোনও চিহ্নিত অঞ্চলকে মন্তব্য করবে বা সঙ্কোচিত করবে, সুতরাং যতক্ষণ না আপনার সম্পূর্ণ ফাংশন বা ফাংশনগুলির সেটটি অঞ্চলটিতে অন্তর্ভুক্ত করা হয়, আপনি এই অঞ্চলটিকে বেশ সহজেই মন্তব্য করতে বা অসন্তুষ্ট করতে পারেন। ফাংশনের জন্য ইমাস রেফারেন্স ম্যানুয়ালটি এখানেM-; পাওয়া যাবে


2

আমি জানি যে একাধিক উপায় রয়েছে:

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

(comment 
 (println 1))

যাইহোক, এটি এখনও বন্ধনী ম্যাচের জন্য পরীক্ষা করবে। সুতরাং আপনার যদি ভারসাম্যহীন প্রথম বন্ধনী থাকে তবে আপনি কোডগুলি সংকলন করবেন না (ফলনযোগ্য java.lang.RuntimeException: EOF while reading)।

আরেকটি উপায় ব্যবহার করা হচ্ছে #_(ওরফে দ্য ম্যাক্রো), এটি পরের সেক্সপকে ফেলে দেবে, যা আমি ব্যক্তিগতভাবে পছন্দ করি (টাইপ করা দ্রুত এবং সাধারণত আমি যখন ডিবাগ করতে হয় তখন সেক্সপ্সে আমি তা করি):

#_(println 1)

এটি তুলনামূলকভাবে ডিলিমিটারগুলির জন্যও পরীক্ষা করে: সুতরাং আপনার যদি ভারসাম্যহীন বন্ধনী থাকে তবে এটিও সঙ্কলিত হবে না।

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

;  (println 1)
;  (println 1 also won't break

0

দীর্ঘ মন্তব্য ব্লকের জন্য, ম্যাক্রোস #_ বা (মন্তব্য ...) মালিকানা হিসাবে কাজ করেনি, তারপরে আমি ভিএসসিইডি (ওএস এক্স) দিয়ে মন্তব্য ব্লক করেছি।

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