Передача параметра в явный блок ruby - PullRequest
0 голосов
/ 01 апреля 2012

Здравствуйте, я пытаюсь выучить рубиновые блоки. Но мне трудно преодолеть эту конструкцию:

class SomeApp

  attr_accessor :load_listener

  def on_load(&block)
    @load_listener = block
  end

  def load(x)
    @load_listener.call(x) if @load_listener
  end

end

app = SomeApp.new
app.on_load { |x| puts 'on load #{x}'} 
app.load(5)

Я не понимаю, почему результат этого кода 'при загрузке # {x}' , вместо 'при загрузке 5' Любая помощь приветствуется.

1 Ответ

6 голосов
/ 01 апреля 2012

Вы используете одинарные кавычки (') вместо двойных кавычек ("). Строковая интерполяция (#{...}) работает только с двойными кавычками.

Изменить puts 'on load #{x}' на puts "on load #{x}".

...