Это называется блоком. В рубине есть два типа блоков. Один - это синтаксис в фигурных скобках, а второй - do end
. Оба они взаимозаменяемы, но фигурные скобки имеют более высокий приоритет. Поэтому эти программы взаимозаменяемы:
my_array.each do |element|
puts element
end
my_array.each {|element|
puts element
}
В этом посте подробно обсуждается разница между этими двумя понятиями и их взаимозаменяемость.