Wie kann ich mehrere Zeilen in Ruby kommentieren?
Antworten
Zu viele Anzeigen?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
=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.
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.
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 ;)
- See previous answers
- Weitere Antworten anzeigen
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.