在Ruby中,如何使_ | _工作?

Ric*_*ton 3 ruby irb puts

puts _|_对Ruby的工作原理感到困惑.如果键入变量然后调用该语句

3
puts _|_
Run Code Online (Sandbox Code Playgroud)

你得到变量的名称后跟nil

 3
 => nil
Run Code Online (Sandbox Code Playgroud)

但是,如果再次输入,则会出现错误

puts _|_
=> false
Run Code Online (Sandbox Code Playgroud)

它似乎不像以美元符号开头的Perl类变量之一.

这个奇怪的符号在世界上是什么意思,它是如何运作的?

Mor*_*ori 6

控制台中的下划线(IRB或pry)代表上一个命令的结果.所以

3
=> 3
puts _|_
3
=> nil
Run Code Online (Sandbox Code Playgroud)

这里的上述puts陈述等同于

puts 3 <bit-wise or> 3
Run Code Online (Sandbox Code Playgroud)

puts 3|3等于puts 3.

因为puts返回nil,当你重复puts _|_它时就变成了

puts nil|nil
Run Code Online (Sandbox Code Playgroud)

......是的puts false.