Como posso comentar várias linhas no Ruby?
Como posso comentar várias linhas no Ruby?
Respostas:
#!/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 eles, principalmente porque separa visualmente as linhas comentadas melhor do que =begin
/ =end
ou usando o método aqui. E bom trabalho.
=begin
e =end
não pode ser precedido por nenhum espaço em branco.
=begin...=end
e o último bloco usando #
são capturados pelo rdoc ao gerar a documentação.
=begin
My
multiline
comment
here
=end
#
e espaço antes de cada linha? São muitas as teclas digitadas, especialmente se eu começar a adicionar quebras de linha.
Apesar da existência de =begin
e =end
, a maneira normal e mais correta de comentar é usar #
s em cada linha. Se você ler a fonte de qualquer biblioteca ruby, verá que é assim que os comentários de várias linhas são feitos em quase todos os casos.
#
porque é mais óbvio. Ao comentar o código, é importante deixar óbvio que foi o que aconteceu. Se você estiver visualizando o código sem o benefício da coloração do código em um editor, =begin/=end
pode ser difícil descobrir por que o código está sendo ignorado.
#
comentários. (Estou mistificada por que isso tinha duas downvotes Eu acho que a comunidade Stack Overflow tem para obtê-lo errado às vezes.!)
3 == three
onde def three; 1 + 1 + 1 end
. Portanto, ambos são válidos. Quem se importa? Use 3
!
vi
em um servidor de produção. Nesse caso, você provavelmente não deveria estar desenvolvendo lá, de qualquer maneira.
#!/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!*/
Pode fazer sentido se você tiver comentários e código de linha única dentro de um comentário de várias linhas, como uma função com documentação que você não deseja que as pessoas usem, mas também não deseja removê-lo do arquivo.
Usando:
= começar este é uma Comente quadra = final
ou
# Esta # é # uma # Comente # quadra
são os dois únicos atualmente suportados pelo rdoc, o que é uma boa razão para usar apenas esses que eu acho.
=begin
ou #
é que tanto <<-DOC
e "
sintaxes irá gerar strings literais inúteis em execução.
=begin
(some code here)
=end
e
# This code
# on multiple lines
# is commented out
ambos estão corretos. A vantagem do primeiro tipo de comentário é a capacidade de edição - é mais fácil remover o comentário porque menos caracteres são excluídos. A vantagem do segundo tipo de comentário é a legibilidade - ao ler o código linha por linha, é muito mais fácil dizer que uma linha específica foi comentada. Você telefona, mas pense em quem está atrás de você e em como é fácil para eles lerem e manterem.
=begin
e =end
não transmitem visualmente que o que está no meio é um comentário ... Clojure, por exemplo, usa o (comment :whatever)
que nos leads diz o que significa: stackoverflow.com/questions/1191628/block-comments-in-clojure
Aqui está um exemplo :
=begin
print "Give me a number:"
number = gets.chomp.to_f
total = number * 10
puts "The total value is : #{total}"
=end
Tudo o que você colocar no meio =begin
e =end
será tratado como um comentário, independentemente de quantas linhas de código ele contenha.
Nota: Verifique se não há espaço entre =
e begin
:
=begin
= begin
=begin
comment line 1
comment line 2
=end
verifique se = begin e = end é a primeira coisa nessa linha (sem espaços)
Caso alguém esteja procurando uma maneira de comentar várias linhas em um modelo html no Ruby on Rails, pode haver um problema com = begin = end, por exemplo:
<%
=begin
%>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<%
=end
%>
falhará devido ao%> fechar o image_tag.
Nesse caso, talvez seja discutível se isso está sendo comentado ou não, mas eu prefiro incluir a seção indesejada com um bloco "se falso":
<% if false %>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<% end %>
Isso vai 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
Observe que, no momento da postagem, o mecanismo stackoverflow não processa a cor da sintaxe corretamente. Testar como é renderizado no seu editor de escolha é um exercício. ;)
.pp
manifesta (que é baseado em um Rubi-como a sintaxe) você pode usar comentários em bloco C-estilo/**/