您好我正在尝试学习红宝石块。但是我很难克服这种结构:
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)
我不明白为什么这段代码的结果是#strong>'加载#{x}',而不是'加载5' 任何帮助表示赞赏。
答案 0 :(得分:6)
您使用单引号('
)而不是双引号("
)。字符串插值(#{...}
)仅适用于双引号。
将puts 'on load #{x}'
更改为puts "on load #{x}"
。