全局变量$_
在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 ......
答案 0 :(得分:0)
这是由IO
,Kernel.gets
或兄弟姐妹之一从Kernel.readline
读取的最后一个字符串。
Pry引入了下划线变量,返回上一次操作的结果,就在它自己的上面。它与ruby全局无关。