2012-04-01 39 views
0

你好,我正在嘗試學習紅寶石塊。但我有一個麻煩來克服這種結構:將參數傳遞給顯式紅寶石塊

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」 任何幫助表示讚賞。

回答

5

您正在使用單引號(')而不是雙引號(")。字符串插值(#{...})只適用於雙引號。

puts 'on load #{x}'更改爲puts "on load #{x}"

+0

你是對的,非常感謝。 – bodo 2012-04-01 10:20:10