$ _(ruby下划线)全局方法返回什么?

时间:2016-02-09 19:29:50

标签: ruby-on-rails ruby

全局变量$_在ruby中返回什么?

它只是回显了之前调用的方法的响应,还是返回(原始)解释器读取的最后一行代码?

Here它说:

  最后读取的

字符串

并在builtin.rb中说:

# Last line read by Kernel#gets or Kernel#readline.
# This variable is defined in current scope, thread local.
$_ = "" #value is unknown, used for indexing.

这是我在控制台中获得的内容:

[1] pry(main)> x = 1 + 5
=> 6
[2] pry(main)> _
=> 6
[3] pry(main)> y = 3 + 3
=> 6
[4] pry(main)> $_
=> nil

_$_之间的区别是什么?

这里有一个gist,其中有人创建了内置.rb ......

1 个答案:

答案 0 :(得分:0)

这是由IOKernel.gets或兄弟姐妹之一从Kernel.readline读取的最后一个字符串。

All ruby globals

Pry引入了下划线变量,返回上一次操作的结果,就在它自己的上面。它与ruby全局无关。