860 Stimmen

Mehrzeilige Kommentare in Ruby?

Wie kann ich mehrere Zeilen in Ruby kommentieren?

9 Stimmen

Es ist ziemlich unglücklich, dass mehrzeilige Kommentare in Ruby wie ein Codeblock aussehen. Und angesichts der hohen Punktzahl, die für diese Frage vergeben wurde (und der akzeptierten Antwort), sollten die Leute, die an der Ruby-Syntax arbeiten, eindeutig ein wenig darüber nachdenken.

17voto

anandharshan Punkte 5245
=begin
comment line 1
comment line 2
=end

sich vergewissern =begin y =end ist der erste Eintrag in dieser Zeile (keine Leerzeichen)

15voto

Prabhakar Undurthi Punkte 6202

Hier ist ein Beispiel:

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

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

=end

Alles, was Sie dazwischen platzieren =begin y =end wird als Kommentar behandelt, unabhängig davon, wie viele Codezeilen er dazwischen enthält.

Nota: Achten Sie darauf, dass kein Leerzeichen zwischen = y begin :

  • Richtig: =begin
  • Falsch: = begin

14voto

La-comadreja Punkte 5447
=begin
(some code here)
=end

y

# This code
# on multiple lines
# is commented out

sind beide korrekt. Der Vorteil der ersten Art von Kommentar ist die Bearbeitbarkeit - es ist einfacher, den Kommentar zu löschen, da weniger Zeichen gelöscht werden. Der Vorteil der zweiten Art von Kommentar ist die Lesbarkeit - wenn man den Code Zeile für Zeile liest, ist es viel einfacher zu erkennen, dass eine bestimmte Zeile auskommentiert wurde. Es ist Ihre Entscheidung, aber denken Sie daran, wer nach Ihnen kommt und wie einfach es für ihn ist, den Code zu lesen und zu pflegen.

4voto

user2553863 Punkte 612

Falls jemand nach einer Möglichkeit sucht, mehrere Zeilen in einem HTML-Template in Ruby on Rails zu kommentieren, könnte es z.B. ein Problem mit =begin =end geben:

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

scheitert an der %> Schließung des image_tag.

In diesem Fall kann man vielleicht darüber streiten, ob dies auskommentiert werden soll oder nicht, aber ich ziehe es vor, den unerwünschten Abschnitt mit einem "if false"-Block zu umschließen:

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

Das wird funktionieren.

2voto

psychoslave Punkte 2309
  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

Beachten Sie, dass die Stackoverflow-Engine zum Zeitpunkt des Beitrags die Syntaxfärbung nicht korrekt wiedergibt. Testen Sie, wie es in Ihrem Editor der Wahl gerendert wird, ist als Übung erlaubt ;)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X