Bagaimana saya bisa mengomentari banyak baris di Ruby?
Bagaimana saya bisa mengomentari banyak baris di Ruby?
Jawaban:
#!/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.
#
lebih dari mereka semua, terutama karena secara visual memisahkan garis komentar lebih baik daripada =begin
/ =end
atau menggunakan metode here-to. Dan, kerja bagus.
=begin
dan =end
tidak bisa didahului oleh spasi putih apa pun.
=begin...=end
blok pertama dan terakhir yang digunakan #
diambil oleh rdoc saat membuat dokumentasi.
=begin
My
multiline
comment
here
=end
#
dan spasi sebelum setiap baris? Banyak sekali penekanan tombol terutama jika saya mulai menambahkan jeda baris.
Meskipun ada =begin
dan =end
, cara yang normal dan lebih tepat untuk berkomentar adalah dengan menggunakan #
di setiap baris. Jika Anda membaca sumber pustaka ruby, Anda akan melihat bahwa ini adalah cara komentar multi-baris dilakukan di hampir semua kasus.
#
karena lebih jelas. Ketika mengomentari kode, penting untuk membuatnya jelas bahwa itulah yang terjadi. Jika Anda melihat kode tanpa manfaat pewarnaan kode dalam editor =begin/=end
dapat membuat sulit untuk mencari tahu mengapa kode tersebut diabaikan.
#
komentar. (Saya bingung mengapa ini memiliki dua downvotes. Saya kira komunitas Stack Overflow kadang-kadang salah!)
3 == three
mana def three; 1 + 1 + 1 end
. Karena itu keduanya valid. Siapa peduli? Gunakan 3
!
vi
server produksi. Dalam hal ini, Anda mungkin tidak seharusnya melakukan pengembangan di sana.
#!/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!*/
Masuk akal jika Anda memiliki komentar satu baris dan kode di dalam komentar multiline, seperti fungsi dengan dokumentasi yang Anda tidak ingin orang lain gunakan, tetapi Anda juga tidak ingin menghapusnya dari file.
Menggunakan salah satu dari:
= mulai Ini adalah Sebuah komentar blok = akhir
atau
# Ini # adalah # Sebuah # komentar # blok
adalah dua hanya saat ini didukung oleh rdoc, yang merupakan alasan bagus untuk menggunakan hanya ini saya pikir.
=begin
atau #
adalah bahwa keduanya <<-DOC
dan "
sintaksis akan menghasilkan string literal yang tidak berguna saat eksekusi.
=begin
(some code here)
=end
dan
# This code
# on multiple lines
# is commented out
keduanya benar. Keuntungan dari jenis komentar pertama adalah dapat diedit - lebih mudah untuk menghilangkan komentar karena lebih sedikit karakter yang dihapus. Keuntungan dari jenis komentar kedua adalah keterbacaan — membaca kode baris demi baris, lebih mudah untuk mengatakan bahwa baris tertentu telah dikomentari. Telepon Anda tetapi pikirkan tentang siapa yang mengejar Anda dan betapa mudahnya bagi mereka untuk membaca dan memelihara.
=begin
dan =end
jangan menyampaikan secara visual bahwa apa yang ada di antara adalah komentar ... Clojure, misalnya, menggunakan (comment :whatever)
yang di lead mengatakan apa artinya: stackoverflow.com/questions/1191628/block-comments-in-clojure
Berikut ini sebuah contoh:
=begin
print "Give me a number:"
number = gets.chomp.to_f
total = number * 10
puts "The total value is : #{total}"
=end
Segala sesuatu yang Anda tempatkan di antara =begin
dan =end
akan diperlakukan sebagai komentar terlepas dari berapa banyak baris kode di dalamnya.
Catatan: Pastikan tidak ada ruang antara =
dan begin
:
=begin
= begin
=begin
comment line 1
comment line 2
=end
pastikan = mulai dan = akhir adalah hal pertama di baris itu (tanpa spasi)
Jika seseorang mencari cara untuk mengomentari banyak baris dalam templat html di Ruby on Rails, mungkin ada masalah dengan = begin = end, misalnya:
<%
=begin
%>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<%
=end
%>
akan gagal karena%> menutup image_tag.
Dalam hal ini, mungkin dapat diperdebatkan apakah ini mengomentari atau tidak, tapi saya lebih suka melampirkan bagian yang tidak diinginkan dengan blok "jika salah":
<% if false %>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<% end %>
Ini akan bekerja
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
Perhatikan bahwa pada saat posting, mesin stackoverflow tidak membuat pewarnaan sintaks dengan benar. Menguji bagaimana hal itu ditampilkan di editor pilihan Anda dibiarkan sebagai latihan. ;)
.pp
menyukai komentar multiline dalam manifestasi Wayang (yang didasarkan pada sintaksis mirip-Ruby), Anda dapat menggunakan komentar blokir gaya-c/**/