Как я могу прокомментировать несколько строк в Ruby?
Как я могу прокомментировать несколько строк в Ruby?
Ответы:
#!/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.
#
их все, в основном потому, что визуально разделяет закомментированные строки лучше, чем =begin
/ =end
или используя метод here-to. И хорошая работа.
=begin
и =end
перед ним не должно быть пробелов.
=begin...=end
и последний использованный блок #
при создании документации.
=begin
My
multiline
comment
here
=end
#
и пробел перед каждой строкой? Это много нажатий клавиш, особенно если я начинаю добавлять разрывы строк.
Несмотря на существование =begin
и =end
, нормальный и более правильный способ комментирования состоит в том, чтобы использовать #
's' в каждой строке. Если вы прочитаете источник любой библиотеки ruby, вы увидите, что именно так многострочные комментарии делаются почти во всех случаях.
#
потому что это более очевидно. При комментировании кода важно, чтобы было очевидно, что именно так и произошло. Если вы просматриваете код, не пользуясь преимуществами раскраски кода в редакторе, это =begin/=end
может затруднить выяснение причин, по которым код игнорируется.
#
комментарии. (Я озадачен, почему у этого было два отрицательных голоса. Я предполагаю, что сообщество Переполнения стека должно иногда ошибаться!)
3 == three
где def three; 1 + 1 + 1 end
. Поэтому оба действительны. Какая разница? Используйте 3
!
vi
на рабочем сервере. В таком случае, вы, вероятно, не должны заниматься разработкой.
#!/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!"
/*I am a\n#nested\ncomment, which really serves no purpose*/
/*I am bound /*to*/ FAIL!*/
Это может иметь смысл, если у вас есть однострочные комментарии и код внутри многострочного комментария, например, функция с документацией, которую вы не хотите, чтобы люди использовали, но вы также не хотите удалять ее из файла.
Используя либо:
= начать Эта является комментарий блок = конец
или
# Эта # является # a # комментарий # блок
только два в настоящее время поддерживаются rdoc, что является хорошей причиной для использования только этих, я думаю.
=begin
или #
заключается в том, что оба <<-DOC
и "
синтаксис будут генерировать бесполезные строковые литералы при исполнении.
=begin
(some code here)
=end
а также
# This code
# on multiple lines
# is commented out
оба правильны. Преимущество первого типа комментариев - возможность редактирования - их легче раскомментировать, потому что удаляется меньше символов. Преимущество комментариев второго типа заключается в удобочитаемости - читая код построчно, гораздо проще сказать, что конкретная строка была закомментирована. Ваш звонок, но подумайте о том, кто придет за вами, и как легко им читать и вести.
=begin
и =end
визуально не передайте, что то, что находится между ними, является комментарием ... Например, Clojure использует то, (comment :whatever)
что в лидерах говорит, что это значит: stackoverflow.com/questions/1191628/block-comments-in-clojure
Вот пример:
=begin
print "Give me a number:"
number = gets.chomp.to_f
total = number * 10
puts "The total value is : #{total}"
=end
Все , что вы поместите между ними =begin
и =end
будет рассматриваться как комментарий , независимо от того , сколько строк кода содержит между ними.
Примечание: убедитесь, что между =
и begin
:
=begin
= begin
=begin
comment line 1
comment line 2
=end
убедитесь, что = начало и = конец - это первое, что есть в этой строке (без пробелов)
В случае, если кто-то ищет способ комментировать несколько строк в шаблоне html в Ruby on Rails, может быть проблема с = begin = end, например:
<%
=begin
%>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<%
=end
%>
потерпит неудачу из-за%> закрытия image_tag.
В этом случае, может быть, это спорно ли это закомментировать или нет, но я предпочитаю, чтобы заключить нежелательный раздел с «если» ложным блоком:
<% if false %>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<% end %>
Это будет работать
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
Обратите внимание, что на момент публикации движок stackoverflow неправильно отображал синтаксическую окраску. Тестирование того, как оно отображается в выбранном вами редакторе, дается в качестве упражнения. ;)
.pp
манифестах Puppet (который основан на Ruby-подобном синтаксисе), вы можете использовать блочные комментарии в стиле c/**/