我在ruby文件中定义了两个方法.

def is_mandatory(string)
      puts xyz
end
def is_alphabets(string)
      puts abc 
end 

包含方法名称的array.

    methods = ["is_mandatory", "is_alphabets"]

当我做以下事情时

    methods.each do |method| puts method.concat("(\"abc\")") end 

它只是显示,是强制性的("abc")是字母表("abc"),而不是实际调用该方法.

如何将字符串转换为方法名?

干杯

推荐答案

最好的方法可能是:

methods.each { |methodName| send(methodName, 'abc') }

Object#send

Ruby相关问答推荐

鲁比.METHOD_MISSING+SEND对于带有命名参数的混合参数失败

Ruby 扁平化 JSON 对象或哈希

Ruby中链表大小调用的时间复杂度

安全导航运算符的使用是否应该在两种情况下进行单元测试(对象存在 + 对象无)?

当数据包含换行符时,Ruby PKCS7 无法验证

数组到哈希:字数

判断Ruby中的目录是否为空

用于 ruby​​ gems 的新 10.9 OSX 的命令行工具?

在 rake 任务中提问

将ruby数组转换为连续对数组

Ruby:如何卸载设计(uninstall Devise)?

Ruby 中的发送方法

如何合并散列数组以获取值数组的散列

是否有等效于 `Array::sample` 的哈希值?

我可以在 Ruby 2.x 中要求命名参数吗?

在 Ruby 中将多个代码块作为参数传递

困惑,像python,ruby这样的语言是单线程的吗?不像说java? (对于网络应用程序)

Array.empty 的相反方法是什么?或 [].empty?在Ruby中

如何在 Ruby 中对数组进行分块

什么是 Ruby 1.9 标准 CSV 库?