Ruby 关于 gets 方法的使用

runup · 2016年01月23日 · 最后由 runup 回复于 2016年01月23日 · 2063 次阅读

选取了元编程书中的代码,都用到了 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())

undefined method "length\n" 不是已经说明一切了?没有 length\n这个方法 , length\n 和 length 能是一回事吗?gets 返回的带一个\ n.

需要 登录 后方可回复, 如果你还没有账号请 注册新账号