Рубиновый ярлык амперсанда и толстой кишки [дубликаты]
Возможный дубликат:
Что означает карта (&: name) в Ruby?
В Ruby я знаю, что если я сделаю:
some_objects.each(&:foo)
Это так же, как
some_objects.each { |obj| obj.foo }
Это,&:foo
создает блок{ |obj| obj.foo }
, превращает его в Proc и передает его каждому. Почему это работает? Это просто особый случай Ruby, или есть причина, почему это работает так, как работает?