เรียนรู้เกี่ยวกับ Ruby Blocks

หากเริ่มเขียน Ruby มาได้สักระยะหนึ่ง จะพบว่ามี syntax ที่เห็นอยู่บ่อยๆ เลยก็คือ {} หรือคำสั่ง do/end โดยมีโค้ดอยู่ภายในดังตัวอย่างด้านล่าง ซึ่งจะเรียกว่า Block

# Example 1
[1, 2, 3].each { |num| puts "Number is #{num}" }

# Example 2
[1, 2, 3].each do |num|
  puts "Number is #{num}"
end
พารามิเตอร์ที่รับเข้ามาจะอยู่ภายในเครื่องหมาย ในกรณีที่มีหลายพารามิเตอร์ก็จะใช้ , คั่น

จะพูดให้ง่ายๆ Block ก็คือ Anonymous Function ที่ถูกนิยามขึ้นโดยไม่มีฟังก์ชัน และถูกเรียกใช้งานในทันที ซึ่งจะใช้ {} หรือ do/end ก็ได้ แต่ส่วนใหญ่เราจะใช้ {} ในกรณีที่โค้ดเรามีเพียงบรรทัดเดียว และจะใช้ do/end เมื่อโค้ดมีหลายบรรทัด ทั้งนี้ก็เพื่อความสวยงาม และอ่านได้ง่าย

References: