加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

什么是Ruby语言中的_ | _?

发布时间:2020-12-17 02:55:32 所属栏目:百科 来源:网络整理
导读:我看过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 这么奇怪的行为.那么这件事是什么,应该怎么做? 解决方法 这是三个令牌. _,和|,和_,它只适用于IRB或定义了_
我看过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

这么奇怪的行为.那么这件事是什么,应该怎么做?

解决方法

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

这个:

puts _|_

……与此相同……

puts _ | _

…这是变量_与其自身的简单按位OR.

我能想到这样做的唯一原因是,在你需要一个真正的布尔值而不仅仅是一个假值的情况下,它会将nil变为false:

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

否则,一个| a始终是一个支持|的类型,带有一些内置类型的notable exception.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读