字符串

时间:2015-06-06 02:32:57

标签: ruby methods

可以这样做:

s="puts"
send(s,"Hello World!")
# => Hello World!

如何检查s是否为方法?如果是:

s="nomethod"

send(s,arg)将失败。

这很酷:

ismethod? s

P.S。我正在从PHP移植一些东西,它依赖于:

if (function_exists($s)) 
    ...

如果只有Ruby那么简单。

1 个答案:

答案 0 :(得分:6)

试试这个:

respond_to?(method_name)

如果当前对象(self)通过该名称响应方法,则它应该返回true。您可以在任何Ruby对象上使用respond_to?

http://ruby-doc.org/core/Object.html#method-i-respond_to-3F