2012-04-01 3 views
0

こんにちは私はルビーブロックを学習しようとしています。しかし、私はこのような構成を乗り越えるために悩み持っている:「負荷に5」の代わりの、このコードの結果が「ロード#{X}に」である理由を私は理解していない明示的ルビブロックへのパラメータの受け渡し

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) 

どんな助けもありがとうございます。

答えて

5

二重引用符(")ではなく、一重引用符(')を使用しています。文字列補間(#{...})は二重引用符でのみ機能します。

puts 'on load #{x}'からputs "on load #{x}"に変更してください。

+0

あなたは正しいです。ありがとうございます。 – bodo

関連する問題