রুবিতে মাল্টি-লাইন মন্তব্য?


745

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



6
এটি বরং দুর্ভাগ্য যে রুবিতে মাল্টলাইন মন্তব্যগুলি দেখতে অনেকটা কোডের ব্লকের মতো। এবং এই প্রশ্নের (এবং স্বীকৃত উত্তর) সম্মানিত উচ্চ পয়েন্টগুলি প্রদত্ত রুবি সিনট্যাক্সে কাজ করা লোকদের স্পষ্টভাবে এ সম্পর্কে কিছুটা চিন্তা করা উচিত।
নিক

উত্তর:


1353
#!/usr/bin/env ruby

=begin
Every body mentioned this way
to have multiline comments.

The =begin and =end must be at the beginning of the line or
it will be a syntax error.
=end

puts "Hello world!"

<<-DOC
Also, you could create a docstring.
which...
DOC

puts "Hello world!"

"..is kinda ugly and creates
a String instance, but I know one guy
with a Smalltalk background, who
does this."

puts "Hello world!"

##
# most
# people
# do
# this


__END__

But all forgot there is another option.
Only at the end of a file, of course.
  • এটি দেখতে (স্ক্রিনশটের মাধ্যমে) এমনভাবে দেখা যায় - অন্যথায় উপরের মন্তব্যগুলি কেমন হবে তা ব্যাখ্যা করা শক্ত। জুম-এ ক্লিক করুন :

একটি পাঠ্য-সম্পাদক মন্তব্য


26
আমি সত্যিই এগুলির সমস্তটি ব্যবহার #করতে পছন্দ করি , বেশিরভাগ কারণ এটি দৃষ্টিগোচরভাবে মন্তব্য করা লাইনগুলিকে =begin/ =endঅথবা এখানে-পদ্ধতি ব্যবহারের চেয়ে আরও ভালভাবে পৃথক করে । এবং, খুব ভাল কাজ।
টিন ম্যান

38
এটি আকর্ষণীয় যে এই উত্তরটি সিনট্যাক্স হাইলাইটারটিতে কিছু ত্রুটি সুস্পষ্ট করে তোলে।
ZoFreX

69
এটি ভুলে যাবেন না =beginএবং =endকোনও সাদা স্থানের আগে করা যাবে না।
bergie3000

15
এবং কোনও পদ্ধতিতে = আরম্ভ = শেষ ব্যবহার করা সম্ভব নয়
অ্যালবার্ট

7
এটি লক্ষণীয় গুরুত্বপূর্ণ যে উপরের উদাহরণ কোডে ডকুমেন্টেশন তৈরি করার সময় কেবল প্রথম =begin...=endএবং শেষ ব্লকটি #rdoc দ্বারা তুলে নেওয়া হয়।
টিন ম্যান

126
=begin
My 
multiline
comment
here
=end

4
অবশ্যই, আপনি এটি করতে পারে । এটা কাজ করে। এটি অবিশ্বাস্যভাবে বিরল। আমি এটি কুরুচিপূর্ণ খুঁজে। আমি কি আমার পথে আটকে আছি?
ডেভিড জে

53
আমি খুঁজে পেয়েছি যে আমি যদি = শুরু বা = শেষ হওয়ার আগে কোনও ট্যাব অন্তর্ভুক্ত করি তবে মন্তব্যগুলি কাজ করবে না। প্রতিটি লাইনের শুরুতে = শুরু এবং = শেষ প্রতিটি লিখতে হবে।
গোলাপ পেরোন

1
আপনি @ ডেভিডজেমস একা নন আমি ব্যক্তিগতভাবে তাদের সকলকে আমার সম্পাদক দ্বারা মন্তব্য করার সিদ্ধান্ত নিয়েছি। সিএমডি + / বা এএলটি + / হ'ল বেশিরভাগের জন্য সম্মেলন।
anon58192932

1
@ ডেভিডজেমস, এর পরিবর্তে আপনি কী করবেন? #প্রতি একক লাইনের আগে একটি এবং স্পেস টাইপ করবেন ? এটি অনেকটা কীস্ট্রোক বিশেষত যদি আমি লাইন ব্রেকগুলি যুক্ত করা শুরু করি।
পল

56

অস্তিত্ব সত্ত্বেও =beginএবং =end, স্বাভাবিক এবং মন্তব্য করার জন্য আর সঠিক উপায় ব্যবহার করা #'প্রতিটি লাইনে s। আপনি যদি কোনও রুবি লাইব্রেরির উত্স পড়ে থাকেন তবে আপনি দেখতে পাবেন যে প্রায় সব ক্ষেত্রেই এভাবেই বহু-লাইনের মন্তব্য করা হয়।


4
আপনি উভয়ই বৈধ হওয়ায় আপনার বিবৃতিটির "আরও সঠিক" অংশ সম্পর্কে আপনি যুক্তি পেতে পারেন। আমি ব্যবহার পছন্দ করি #কারণ এটি আরও সুস্পষ্ট। কোড মন্তব্য করার সময় এটিকে স্পষ্ট করে দেখা গুরুত্বপূর্ণ যা ঘটেছিল। আপনি যদি কোনও সম্পাদককে কোড রঙ করার সুবিধা ছাড়াই কোডটি দেখেন তবে কোডটিকে =begin/=endকেন উপেক্ষা করা হচ্ছে তা নির্ধারণ করা শক্ত করে তুলতে পারে।
টিন ম্যান

6
অবশ্যই, মন্তব্যগুলি লেখার অনেকগুলি "বৈধ" উপায় রয়েছে। আসুন এখানে ব্যবহারিক হতে হবে। আপনি যদি রুবি লিখেন এবং অন্যেরা যা লিখেন তা যদি পড়ে থাকেন তবে আপনার #মন্তব্যগুলি ব্যবহার করা উচিত । (আমি মিস্টিফাইড করছি কেন এই দুই downvotes ছিল আমি স্ট্যাক ওভারফ্লো সম্প্রদায় ভুল কখনও কখনও এটি পেতে হয়েছে।!)
ডেভিড জে

4
3 == threeযেখানে def three; 1 + 1 + 1 end। সুতরাং উভয় বৈধ। কে পাত্তা দেয়? ব্যবহার করুন 3!
ডেভিড জে

1
@ থিনম্যান সত্য হলেও, আপনি যখন viকোনও প্রোডাকশন সার্ভার ব্যবহার করছেন তখন সাধারণত যখন আপনার সিনট্যাক্স হাইলাইটিংয়ের (আমার অভিজ্ঞতায়) অভাব হবে । কোন ক্ষেত্রে, আপনার সম্ভবত সেখানে কোনওভাবেই আপনার উন্নয়ন করা উচিত নয়।
পার্থিয়ান শট 19

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

20
#!/usr/bin/env ruby

=begin
Between =begin and =end, any number
of lines may be written. All of these
lines are ignored by the Ruby interpreter.
=end

puts "Hello world!"

1
+1 কারণ আমার কোনও ধারণা নেই বাসা বাঁধাই রুবি মাল্টলাইন মন্তব্যে একটি জিনিস।
পার্থিয়ান শট 19

2
@ পার্থিয়ানশট - এটি কোনও জিনিস নয় - = আরম্ভ এবং = শেষ যদি কোনও লাইনের শুরুতে না হয় তবে তা উপেক্ষা করা হবে। বাসা বাঁধানো সম্ভব বলে মনে হচ্ছে না।
স্কেজেডাল

কোনও মন্তব্যের অভ্যন্তরে কোনও মন্তব্যে বাসা বাঁধার ফলে একটি মন্তব্য বা সিনট্যাক্স ত্রুটি হতে পারে যেখানে কোনও মন্তব্য শেষ করার মত নয়। /*I am a\n#nested\ncomment, which really serves no purpose*/ /*I am bound /*to*/ FAIL!*/আপনার যদি একাধিক মন্তব্যের ভিতরে একক লাইন মন্তব্য এবং কোড থাকে, যেমন ডকুমেন্টেশন সহ এমন কোনও ফাংশন যা আপনি লোকেরা ব্যবহার করতে চান না, তবে আপনি এটি ফাইল থেকে সরাতেও চাইবেন না sense
চিনটো ভোকরো

17

হয় ব্যবহার:

= শুরু
এই
হয়
একটি
মন্তব্য
বাধা
= শেষ

অথবা

# এই
# হয়
# ক
# মন্তব্য
# ব্লক

বর্তমানে কেবলমাত্র দু'জনই rdoc দ্বারা সমর্থিত, যা কেবলমাত্র আমি মনে করি এটি ব্যবহার করার একটি ভাল কারণ।


1
=beginবা আটকে থাকার আরও একটি ভাল কারণ #হ'ল উভয় <<-DOCএবং "সিনট্যাক্সগুলি কার্যকর করার সময় অকেজো স্ট্রিং লিটারেল তৈরি করবে।
সিউর

13
=begin
(some code here)
=end

এবং

# This code
# on multiple lines
# is commented out

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


আইএমও, =beginএবং =endদৃষ্টিভঙ্গি দিয়ে এই কথাটি প্রকাশ করবেন না যে এর মধ্যে যা রয়েছে তা একটি মন্তব্য ... উদাহরণস্বরূপ, ক্লোজার, (comment :whatever)যা ব্যবহার করে যা এর লিড বলতে বোঝায়: স্ট্যাকওভারফ্লো
ডেভিড জে

1
জাভা, সি এবং সি ++ এ "/ *" এবং "* /" করবেন না। রুবি সিনট্যাক্সের মতো, কোডের বড় ব্লকগুলি এই দুটি চরিত্রের মধ্যে মন্তব্য করা হতে পারে এবং ভাষার বুনিয়াদি যারা জানেন তারা সবাই কী বোঝাতে চেয়েছেন।
লা-কমড্রেজা

1
সিনট্যাক্স রঙ করা (উদাহরণস্বরূপ, ভিএম মধ্যে) দেখায় যে প্রথম টাইপটি একটি মন্তব্য। সেক্ষেত্রে প্রথম ধরণের কোনও অসুবিধা নেই।
ক্যামিল গৌডেসুন

12

এখানে একটি উদাহরণ:

=begin 
print "Give me a number:"
number = gets.chomp.to_f

total = number * 10
puts  "The total value is : #{total}"

=end

আপনি এর মধ্যে রাখুন =beginএবং এর মধ্যে =endকতগুলি লাইনের কোড রয়েছে তা নির্বিশেষে একটি মন্তব্য হিসাবে বিবেচিত হবে Everything

দ্রষ্টব্য:= এবং এর মধ্যে কোনও স্থান নেই তা নিশ্চিত করুন begin:

  • সঠিক: =begin
  • ভুল: = begin

4

=begin comment line 1 comment line 2 =end নিশ্চিত করুন = শুরু এবং = শেষটি সেই লাইনের প্রথম জিনিস (কোনও স্থান নেই)


2

যদি কেউ রেল অন রুবেলে এইচটিএমএল টেমপ্লেটে একাধিক লাইন মন্তব্য করার উপায় খুঁজছেন তবে উদাহরণস্বরূপ, = আরম্ভ = শেষের ক্ষেত্রে সমস্যা হতে পারে:

<%
=begin
%>
  ... multiple HTML lines to comment out
  <%= image_tag("image.jpg") %>
<%
=end
%>

%> চিত্র_ট্যাগ বন্ধ করার কারণে ব্যর্থ হবে।

এই ক্ষেত্রে, সম্ভবত এটি মন্তব্য করছে কিনা তা তর্কযোগ্য হবে তবে আমি "যদি মিথ্যা" ব্লক দিয়ে অনাকাঙ্ক্ষিত বিভাগটি সংযুক্ত করতে পছন্দ করি:

<% if false %>
  ... multiple HTML lines to comment out
  <%= image_tag("image.jpg") %>
<% end %>

এটি কাজ করবে।


0
  def idle
    <<~aid
    This is some description of what idle does.

    It does nothing actually, it's just here to show an example of multiline
    documentation. Thus said, this is something that is more common in the
    python community. That's an important point as it's good to also fit the
    expectation of your community of work. Now, if you agree with your team to
    go with a solution like this one for documenting your own base code, that's
    fine: just discuss about it with them first.

    Depending on your editor configuration, it won't be colored like a comment,
    like those starting with a "#". But as any keyword can be used for wrapping
    an heredoc, it is easy to spot anyway. One could even come with separated
    words for different puposes, so selective extraction for different types of
    documentation generation would be more practical. Depending on your editor,
    you possibly could configure it to use the same syntax highlight used for
    monoline comment when the keyword is one like aid or whatever you like.

    Also note that the squiggly-heredoc, using "~", allow to position
    the closing term with a level of indentation. That avoids to break the visual reading flow, unlike this far too long line.
    aid
  end

নোট করুন যে পোস্টের মুহুর্তে, স্ট্যাকওভারফ্লো ইঞ্জিনটি সিনট্যাক্স রঙ সঠিকভাবে রেন্ডার করে না। এটি আপনার পছন্দের সম্পাদকটিতে কীভাবে রেন্ডার হয় তা পরীক্ষা করে নেওয়া অনুশীলন হিসাবে দেওয়া হয়। ;)

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