Я попытался сделать глупый пример, чтобы получить представление о нескольких процедурах, переданных методу. Однако одна вещь, которая меня поразила, - это порядок исполнения. Я посмотрел документацию Proc, но на самом деле не нашел объяснений (возможно, я не смотрел достаточно внимательно).Порядок выполнения для нескольких процедур в Ruby
Вот пример:
def my_block(a, b)
a.call b.call
end
a = Proc.new { puts "hello" }
b = Proc.new { puts " world" }
my_block a, b
Выход:
world
hello
Похоже, что исполнение Proc когда дано больше, чем один на линии выполняет слева направо. Может кто-нибудь объяснить это поведение в деталях?
Это на самом деле очень интересно. Теперь я пытаюсь понять, почему это происходит! – dane
Спасибо @dane. Оцените любую помощь или ввод. ':)' –
Возможно, мне казалось, что компилятор смещает «<<» их в массив, так как они находятся на одной строке, а затем b.call на самом деле получает ontop? @jaypal sigh – dane