【发布时间】:2017-01-04 19:57:12
【问题描述】:
只是好奇。
如果您打开 IRB 并输入 _,您将得到 nil 作为响应:
irb(main):001:0> _
=> nil
你可以修改它的值:
irb(main):002:0> _ = 'some value'
irb(main):003:0> _
=> "some value"
但是如果你用_创建一个新变量,它的值会被修改:
irb(main):004:0> foo_bar = 'other value'
irb(main):005:0> _
=> "other value"
为什么?这是设计决定吗?
【问题讨论】:
-
这实际上是一个方便的功能。如果要保存上一次操作的结果:
a = _。我经常使用irb作为一个方便的计算器,所以你可以很容易地链接东西:例如_ / 1e6。 -
下划线的一些更有趣的含义呈现在Here,例如视觉分隔符(
1_000_000)或被忽略的参数object.each {|_, v| ...}