【发布时间】:2012-01-12 16:41:21
【问题描述】:
我正在尝试使用同一字符串中给定的参数动态调用字符串中给定的方法,但我在提供参数时遇到了困难......
我目前有:
query = Query.new
while true
input = gets.split(%r{[/[[:blank:]]/,]})
puts (query.instance_exec(*input.drop(1)) { |x|
instance_eval input.at(0)
})
end
所以方法名称是 input(0),这个方法的参数在输入的其余部分。 有没有办法用这些参数调用这个方法?
【问题讨论】:
-
你输入的字符串是什么样的?我问只是因为你的正则表达式看起来有点奇怪。
-
字符串看起来像
method_name paramList,其中 paramList 是由逗号、空格或两者混合分隔的可变数量的参数。因此,正则表达式应该将其分解为 [method_name, param1, param2, ...] 形式的数组。 PS:实际上应该是%r{[/[[:blank:]]/,]+}我同时修复了它。
标签: ruby arguments instance-eval