ฉันจะแสดงความคิดเห็นหลายบรรทัดใน 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
วิธีปกติและวิธีที่ถูกต้องมากขึ้นในการแสดงความคิดเห็นคือการใช้งาน#
ในแต่ละบรรทัด หากคุณอ่านแหล่งที่มาของไลบรารีทับทิมใด ๆ คุณจะเห็นว่านี่เป็นวิธีการแสดงความคิดเห็นแบบหลายบรรทัดในเกือบทุกกรณี
#
เพราะเห็นได้ชัดกว่า เมื่อแสดงความคิดเห็นรหัสเป็นสิ่งสำคัญที่จะทำให้มันชัดเจนว่าเป็นสิ่งที่เกิดขึ้น หากคุณกำลังดูโค้ดโดยไม่ได้รับประโยชน์จากการกำหนดสีโค้ดในโปรแกรมแก้ไข=begin/=end
สามารถทำให้ยากที่จะทราบว่าเพราะเหตุใดรหัสจึงถูกละเว้น
#
ความคิดเห็น (ฉันประหลาดใจว่าทำไมเรื่องนี้ถึงมีสอง downvotes ฉันคิดว่าชุมชน Stack Overflow ต้องทำให้มันผิดในบางครั้ง!)
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 อาจมีปัญหากับ = start = end ตัวอย่างเช่น:
<%
=begin
%>
... multiple HTML lines to comment out
<%= image_tag("image.jpg") %>
<%
=end
%>
จะล้มเหลวเนื่องจากการ%> ปิด image_tag
ในกรณีนี้มันอาจจะพิสูจน์ได้ว่าสิ่งนี้เป็นการแสดงความคิดเห็นหรือไม่ แต่ฉันชอบที่จะใส่ส่วนที่ไม่พึงประสงค์ด้วยบล็อก "if false":
<% 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
โปรดทราบว่าในขณะที่ทำการโพสต์เอ็นจิ้นสแต็คโอเวอร์โฟลว์ไม่แสดงสีไวยากรณ์อย่างถูกต้อง การทดสอบว่าการแก้ไขในตัวเลือกที่คุณเลือกนั้นเป็นแบบฝึกหัดได้อย่างไร ;)
.pp
แสดงออก (ซึ่งจะขึ้นอยู่กับทับทิมเหมือนไวยากรณ์) คุณสามารถใช้คสไตล์ความคิดเห็นบล็อก/**/