Multi-line-opmerkingen in Ruby?

Hoe kan ik meerdere regels in Ruby reageren?


Antwoord 1, Autoriteit 100%

#!/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.
  • Dit is hoe het eruit ziet (via screenshot) – anders is het moeilijk om te interpreteren hoe de bovenstaande opmerkingen zullen kijken. Klik om in te zoomen :


Antwoord 2, Autoriteit 9%

=begin
My 
multiline
comment
here
=end

Antwoord 3, Autoriteit 4%

Ondanks het bestaan ​​van =beginen =end, de normale en een correctere manier om commentaar te gebruiken: #S On elke regel. Als u de bron van een RUBY-bibliotheek leest, ziet u dat dit de manier is waarop multi-line-opmerkingen in bijna alle gevallen worden uitgevoerd.


Antwoord 4

#!/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!"

Antwoord 5

Gebruik van:

= BEGIN
Dit 
is
een
opmerking
blok
=einde

of

# Dit
# is
# een
# opmerking
# blok

zijn de enige twee die momenteel door rdoc worden ondersteund, wat een goede reden is om alleen deze te gebruiken denk ik.


Antwoord 6

=begin
(some code here)
=end

en

# This code
# on multiple lines
# is commented out

zijn beide correct. Het voordeel van het eerste type opmerking is de bewerkbaarheid: het is gemakkelijker om opmerkingen ongedaan te maken omdat er minder tekens worden verwijderd. Het voordeel van het tweede type commentaar is de leesbaarheid: als je de code regel voor regel leest, is het veel gemakkelijker om te zien dat een bepaalde regel is uitgecommentarieerd. Uw oproep, maar denk na over wie er achter u aan komt en hoe gemakkelijk het voor hen is om te lezen en te onderhouden.


Antwoord 7

Hier is een voorbeeld:

=begin 
print "Give me a number:"
number = gets.chomp.to_f
total = number * 10
puts  "The total value is : #{total}"
=end

Alles wat je tussen =beginen =endplaatst, wordt behandeld als een opmerking, ongeacht het aantal regels code ertussen.

Opmerking:zorg ervoor dat er geen spatie is tussen =en begin:

  • Correct: =begin
  • Fout: = begin

Antwoord 8

=begin
comment line 1
comment line 2
=end

zorg ervoor dat =beginen =endhet eerste zijn op die regel (geen spaties)


Antwoord 9

Als iemand op zoek is naar een manier om meerdere regels te becommentariëren in een html-sjabloon in Ruby on Rails, kan er een probleem zijn met =begin =end, bijvoorbeeld:

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

zal mislukken vanwege de %> de image_tag sluiten.

In dit geval is het misschien discutabel of dit een commentaar is of niet, maar ik geef er de voorkeur aan om de ongewenste sectie te omsluiten met een “if false” blok:

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

Dit zal werken.


Antwoord 10

 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

Merk op dat op het moment van het bericht de Stackoverflow-engine geen syntaxcoloratie correct maakt. Testen Hoe het maakt in uw editor van de keuze, wordt als een oefening gelaten. 😉

Other episodes