[英]Ruby instance_exec / instance_eval with arguments
我正在尝试使用相同字符串中给定的参数动态调用字符串中给定的方法,但是我一直无法提供参数...
我目前有:
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),此方法的参数位于其余输入中。 有什么方法可以使用这些参数调用此方法?
您正在寻找的方法是send
。 它的第一个参数是方法,其余参数将传递给该方法。
query = Query.new
puts query.send(*gets.split(/\s+/)) while true
while
修饰符。 *
,它分解一个数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.