2011-12-06 99 views
0

通過執行下面的代碼,它返回指示Method類對象的'Method'是什麼?它有什麼作用 ?爲什麼它不能被實例化?它沒有新的。 另外我們如何添加一個new方法作爲Method類對象的構造函數?什麼是Ruby中的方法類對象?它有什麼作用 ?爲什麼它不能被實例化?

proc_obj = -> {puts "Hello Lambda"} 

def pass_lambda proc 
    puts "Begin" 
    proc.yield 
    puts "End" 
end 

pass_lambda proc_obj 

puts proc_obj.method(:call).class 

回答

0

Method是一流的,你可以從一個Module提取的所有方法。如果您想要動態定義方法,請使用define_method,因爲方法無法定義爲解綁定(即使有UnboundMethod。您正在尋找的是Proc.new來定義一個匿名方法,如果要綁定該方法,您可以使用define_method(:method_name, &proc_you_defined)

相關問題