选取了元编程书中的代码,都用到了 gets 方法,但是在下面的第一段代码中可行,但是在第二段代码中报错,求问原因,代码如下:
def explore_array(method)
code = "['a','b','c'].#{method}"
puts "evaluating: #{code}"
eval code
end
loop {p explore_array(gets())}
如上代码终端回车,输入 length,返回预期的结果,如下的代码返回的结果是,undefined method "length/n",代码如下所以:
def explore_array(method, *arguments)
code = ['a','b','c'].send(method, *arguments)
end
puts explore_array(gets())