【问题标题】:What is it _|_ in Ruby language?Ruby 语言中的 _|_ 是什么?
【发布时间】:2015-07-09 14:04:18
【问题描述】:

我已经看到 smarterer.com 测试过这个东西。我已经像这样在 irb 中对其进行了测试:

2.2.0 :019 > puts _|_
13
=> nil 

2.2.0 :020 > c = a.to_s.to_i;c+=1;i=13;puts _|_
false
=> nil 

如此奇怪的行为。那么这个东西是什么,应该怎么做呢?

【问题讨论】:

    标签: ruby irb


    【解决方案1】:

    这是三个令牌。 _, 和|, 和_,它只适用于IRB或其他定义_的环境。

    这个:

    puts _|_
    

    ...与此相同...

    puts _ | _
    

    ...这是变量_ 与自身的简单按位或。

    我能想到这样做的唯一原因是,它会将nil 转换为false,以防您需要一个真正的布尔值,而不仅仅是一个虚假值:

    irb(main):001:0> nil | nil
    => false
    

    否则,对于支持 | 的类型,a | a 将始终为 a,而某些内置类型则为 notable exception

    【讨论】:

    • 变量_ 未在irb 中定义
    • @hek2mgl 是的; _ 是 IRB 中最后一个表达式的值。试试看。
    • @SergioTulentsev 你实际上不需要任何事情来定义_;当你开始 IRB 时,它是nilpastebin.com/YVfSudg7
    • "a | a 永远是a" - 不一定。类可以以不同的方式实现|Array#| 返回一个集合并集,即ary | ary 等价于ary.uniq
    • @Stefan 我准备好无视你的评论,我想“当然你可以|做任何你想做的事,但这几乎不在这里或那里”。但是内置类已经做到这一点是非常好的。
    猜你喜欢
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 2011-07-10
    • 2012-08-16
    • 1970-01-01
    • 2020-06-29
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多