首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby语言中的_|_是什么?

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

Stack Overflow用户
提问于 2015-07-09 14:04:18
回答 1查看 100关注 0票数 4

我看过smarterer.com测试的东西。我在irb里做过这样的测试:

代码语言:javascript
复制
2.2.0 :019 > puts _|_
13
=> nil 

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-09 14:08:03

是三个代币。_|_,它只在定义了_的IRB或其他环境中工作。

这是:

代码语言:javascript
复制
puts _|_

...is和这个完全一样.

代码语言:javascript
复制
puts _ | _

...which本身是变量_的简单按位或或。

我能想到这样做的唯一原因是,在需要真正的布尔值(而不仅仅是虚值)的情况下,它将将nil转换为false

代码语言:javascript
复制
irb(main):001:0> nil | nil
=> false

否则,对于支持a | a的类型,a始终是a,而某些内置类型的notable exception则是这样。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31319875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档