ruby - 字符串中的引用方法名称

标签 ruby methods

可以这样做:

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

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

s="nomethod"

send(s,arg) 将失败。

这会很酷:

方法? s

附言我正在从 PHP 移植一些东西,它依赖于:

if (function_exists($s)) 
    ...

要是 Ruby 有这么简单的东西就好了。

最佳答案

试试这个:

respond_to?(method_name)

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

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

关于ruby - 字符串中的引用方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30678352/

相关文章:

java - 需要帮助解决 Android NullPointer 问题

ruby - 是否有 Hash.Merge 的 ActiveRecord 版本?

javascript - 如何将参数传递给 Rails 中的 js.erb?

c++ - 将二维数组打印为 C++ 中的方法

java - Java 中私有(private)静态嵌套类中的访问修饰符

C# 和 MySQL - 返回 DataReader(或其内容)的方法

ruby - 在 fork 之前强制断开与 DataMapper(DataObjects 适配器)的连接?

ruby - 使用 Ruby 从串行端口读取

ruby-on-rails - 错误运行 rails 生成设计 :install

java - 打印堆栈内容的递归方法