可以这样做:
s="puts"
send(s,"Hello World!")
# => Hello World!
如何检查s
是否为方法?如果是:
s="nomethod"
send(s,arg)
将失败。
这很酷:
ismethod? s
P.S。我正在从PHP移植一些东西,它依赖于:
if (function_exists($s))
...
如果只有Ruby那么简单。
答案 0 :(得分:6)
试试这个:
respond_to?(method_name)
如果当前对象(self)通过该名称响应方法,则它应该返回true。您可以在任何Ruby对象上使用respond_to?
。