Як я можу коментувати кілька рядків у 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
або використовує метод тут. І, приємна робота.
=begin
і =end
не може передувати жодному пробілу.
=begin...=end
та останній використовувані #
блоки при створенні документації.
=begin
My
multiline
comment
here
=end
#
і пробіл перед кожним рядком? Це дуже багато натискань на клавіші, особливо якщо я починаю додавати розриви рядків.
Незважаючи на існування =begin
та =end
, нормальним і правильнішим способом коментування є використання #
s у кожному рядку. Якщо ви прочитаєте джерело будь-якої бібліотеки рубінів, то побачите, що саме так робляться багаторядкові коментарі майже у всіх випадках.
#
тому що це більш очевидно. Коментуючи код, важливо зробити зрозумілим, що це сталося. Якщо ви переглядаєте код, не використовуючи забарвлення коду в редакторі, використовуючи редактор, це =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
маніфестах Лялькових (які базуються на синтаксисі, подібному до Ruby), ви можете використовувати блокові коментарі у стилі c/**/