-1
所以,我想做一個方法列表,並在for循環中使用後列出。類中的方法列表
class Hello def func pass end def func1 pass end list = [func, func1] def loop_func for func_instance in list func_instance end end end
但是這段代碼不起作用。哪裏不對?
所以,我想做一個方法列表,並在for循環中使用後列出。類中的方法列表
class Hello def func pass end def func1 pass end list = [func, func1] def loop_func for func_instance in list func_instance end end end
但是這段代碼不起作用。哪裏不對?
class Hello
def foo
p "Foo"
end
def bar
p "Bar"
end
def loop_methods
self.class.instance_methods(false)
.each{ |m| m == __method__ || self.send(m) }
end
end
Hello.new.loop_methods
對於類'A'和'a = A.new','A.instance_methods'或'a.methods'會給你一個類的實例方法的數組。使用'A.instance_methods(false)'或'a.methods(false)'來僅包含在該類上定義的實例方法(即,排除未被覆蓋的繼承實例方法)。 –
好的。以及我如何從列表中運行函數? – di0x
可以通過'send'以編程方式調用方法。查看http://ruby-doc.org/core-2.2.2/Object.html#method-i-send – rossettistone