Comment puis-je commenter plusieurs lignes dans Ruby?
Comment puis-je commenter plusieurs lignes dans Ruby?
Réponses:
#!/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.
#
tous, principalement parce que cela sépare visuellement les lignes commentées mieux que =begin
/ =end
ou en utilisant la méthode here-to. Et, beau travail.
=begin
et =end
ne pouvez être précédé d'aucun espace.
=begin...=end
et le dernier bloc utilisant #
sont récupérés par rdoc lors de la génération de la documentation.
=begin
My
multiline
comment
here
=end
#
et espace avant chaque ligne? C'est beaucoup de touches, surtout si je commence à ajouter des sauts de ligne.
Malgré l'existence de =begin
et =end
, la manière normale et plus correcte de commenter consiste à utiliser #
des sur chaque ligne. Si vous lisez la source d'une bibliothèque ruby, vous verrez que c'est la façon dont les commentaires sur plusieurs lignes sont effectués dans presque tous les cas.
#
car c'est plus évident. Lorsque vous commentez du code, il est important de montrer clairement que c'est ce qui s'est produit. Si vous visualisez le code sans l'avantage de la coloration du code dans un éditeur, il =begin/=end
peut être difficile de comprendre pourquoi le code est ignoré.
#
commentaires. (Je suis mystifié pourquoi cela a eu deux downvotes. Je suppose que la communauté Stack Overflow doit parfois se tromper!)
3 == three
où def three; 1 + 1 + 1 end
. Par conséquent, les deux sont valides. On s'en fout? Utilisez 3
!
vi
sur un serveur de production. Dans ce cas, vous ne devriez probablement pas y faire votre développement de toute façon.
#!/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!*/
Cela peut avoir du sens si vous avez des commentaires sur une seule ligne et du code à l'intérieur d'un commentaire multiligne, comme une fonction avec une documentation que vous ne voulez pas que les gens utilisent, mais vous ne voulez pas non plus le supprimer du fichier.
En utilisant soit:
= commencer Cette est une commentaire bloquer = fin
ou
# Cette # est # une # commentaire # bloquer
sont les deux seuls actuellement pris en charge par rdoc, ce qui est une bonne raison de ne les utiliser que je pense.
=begin
ou #
est que les deux <<-DOC
et les "
syntaxes généreront des littéraux de chaîne inutiles à l'exécution.
=begin
(some code here)
=end
et
# This code
# on multiple lines
# is commented out
sont tous les deux corrects. L'avantage du premier type de commentaire est la possibilité de modification - il est plus facile de décommenter car moins de caractères sont supprimés. L'avantage du deuxième type de commentaire est la lisibilité - en lisant le code ligne par ligne, il est beaucoup plus facile de dire qu'une ligne particulière a été mise en commentaire. Votre appel, mais pensez à qui vient après vous et à quel point il est facile à lire et à maintenir.
=begin
et =end
ne transmet pas visuellement que ce qui est entre les deux est un commentaire ... Clojure, par exemple, utilise (comment :whatever)
ce qui, au conduit, dit ce que cela signifie: stackoverflow.com/questions/1191628/block-comments-in-clojure
Voici un exemple :
=begin
print "Give me a number:"
number = gets.chomp.to_f
total = number * 10
puts "The total value is : #{total}"
=end
Tout ce que vous placez entre =begin
et =end
sera traité comme un commentaire, quel que soit le nombre de lignes de code qu'il contient entre.
Remarque: assurez-vous qu'il n'y a pas d'espace entre =
et begin
:
=begin
= begin
=begin
comment line 1
comment line 2
=end
assurez-vous que = begin et = end est la première chose sur cette ligne (pas d'espaces)
Si quelqu'un cherche un moyen de commenter plusieurs lignes dans un modèle html dans Ruby on Rails, il peut y avoir un problème avec = begin = end, par exemple:
<%
=begin
%>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<%
=end
%>
échouera à cause de%> la fermeture de l'image_tag.
Dans ce cas, il est peut-être discutable qu'il s'agisse d'un commentaire ou non, mais je préfère entourer la section indésirable d'un bloc "si faux":
<% if false %>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<% end %>
Cela fonctionnera.
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
Notez qu'au moment de la publication, le moteur stackoverflow ne rend pas correctement la coloration de la syntaxe. Tester le rendu dans l'éditeur de votre choix est considéré comme un exercice. ;)
.pp
manifestes Puppet (qui est basé sur une syntaxe de type Ruby), vous pouvez utiliser des commentaires de bloc de style c/**/