¿Cómo puedo comentar varias líneas en Ruby?
¿Cómo puedo comentar varias líneas en Ruby?
Respuestas:
#!/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.
#
sobre todos ellos, principalmente porque separa visualmente las líneas comentadas mejor que =begin
/ =end
o usando el método here-to. Y buen trabajo.
=begin
y =end
no puede ser precedido por ningún espacio en blanco.
=begin...=end
y el último bloque que #
se usa al generar la documentación.
=begin
My
multiline
comment
here
=end
#
espacio antes de cada línea? Son muchas pulsaciones de teclas, especialmente si empiezo a agregar saltos de línea.
A pesar de la existencia de =begin
y =end
, la forma normal y más correcta de comentar es usar #
's en cada línea. Si lee la fuente de cualquier biblioteca de ruby, verá que esta es la forma en que se hacen comentarios de varias líneas en casi todos los casos.
#
porque es más obvio. Al comentar el código, es importante que sea obvio que eso es lo que sucedió. Si está viendo el código sin el beneficio de colorear el código en un editor, =begin/=end
puede ser difícil descubrir por qué se ignora el código.
#
comentarios. (Estoy desconcertado por qué esto tuvo dos votos negativos. ¡Supongo que la comunidad de Stack Overflow tiene que equivocarse a veces!)
3 == three
donde def three; 1 + 1 + 1 end
. Por lo tanto, ambos son válidos. ¿A quien le importa? Uso 3
!
vi
un servidor de producción. En ese caso, probablemente no deberías estar haciendo tu desarrollo allí, de todos modos.
#!/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!*/
Podría tener sentido si tiene comentarios de una sola línea y código dentro de un comentario de varias líneas, como una función con documentación que no desea que las personas usen, pero tampoco desea eliminarlo del archivo.
Usando:
= comenzar Esta es una comentario bloquear = fin
o
# Esta # es # una # comentario # bloque
son los dos únicos actualmente soportados por rdoc, lo cual es una buena razón para usar solo estos, creo.
=begin
o #
es que ambas <<-DOC
y las "
sintaxis generarán literales de cadena inútiles en la ejecución.
=begin
(some code here)
=end
y
# This code
# on multiple lines
# is commented out
Son ambos correctos. La ventaja del primer tipo de comentario es la editabilidad: es más fácil descomentar porque se eliminan menos caracteres. La ventaja del segundo tipo de comentario es la legibilidad: al leer el código línea por línea, es mucho más fácil saber que una línea en particular ha sido comentada. Tu llamada, pero piensa en quién vendrá después de ti y qué tan fácil es para ellos leer y mantener.
=begin
y =end
no transmite visualmente que lo que está en el medio es un comentario ... Clojure, por ejemplo, usa lo (comment :whatever)
que en el plomo dice lo que significa: stackoverflow.com/questions/1191628/block-comments-in-clojure
Aquí hay un ejemplo :
=begin
print "Give me a number:"
number = gets.chomp.to_f
total = number * 10
puts "The total value is : #{total}"
=end
Todo lo que coloques en el medio =begin
y =end
será tratado como un comentario, independientemente de cuántas líneas de código contenga.
Nota: Asegúrese de que no haya espacio entre =
y begin
:
=begin
= begin
=begin
comment line 1
comment line 2
=end
asegúrese de que = begin y = end es lo primero en esa línea (sin espacios)
En caso de que alguien esté buscando una manera de comentar varias líneas en una plantilla html en Ruby on Rails, podría haber un problema con = begin = end, por ejemplo:
<%
=begin
%>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<%
=end
%>
fallará debido a que%> cierra la etiqueta_imagen.
En este caso, tal vez sea discutible si esto está comentando o no, pero prefiero encerrar la sección no deseada con un bloque "si es falso":
<% if false %>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<% end %>
Esto funcionará
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
Tenga en cuenta que en el momento de la publicación, el motor de stackoverflow no representa la coloración de sintaxis correctamente. Probar cómo se muestra en el editor de su elección se deja como un ejercicio. ;)
.pp
/**/