1
我想动态调用中使用相同的字符串给定的参数字符串给定的方法instance_eval的,我陷入上虽然提供的参数...红宝石instance_exec /带参数
我现在有:
query = Query.new
while true
input = gets.split(%r{[/[[:blank:]]/,]})
puts (query.instance_exec(*input.drop(1)) { |x|
instance_eval input.at(0)
})
end
所以方法名称是输入(0),并且此方法的参数在输入的其余部分。 有没有办法用这些参数调用这个方法?
你的输入字符串是什么样的?我只问,因为你的正则表达式有点奇怪。 –
该字符串看起来像'method_name paramList',其中paramList是由逗号,空格或两者混合分隔的可变数量的参数。所以正则表达式应该将其分解为一个[method_name,param1,param2,...]形式的数组。 PS:它实际上应该是'%r {[/ [[:blank:]] /,] +}'我同时修正了这个问题。 – Ramses