首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将布尔值转换为整数?

如何将布尔值转换为整数?
EN

Stack Overflow用户
提问于 2012-11-24 08:28:59
回答 7查看 34.7K关注 0票数 34

我有一个布尔值来检查它是否为真,然后设置一个局部变量。我如何重构它,使其更具Ruby风格?

if firm.inflection_point
  inflection_point = 1
else
  inflection_point = 0
end
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-11-24 08:47:48

inflection_point = (firm.inflection_point ? 1 : 0)
票数 70
EN

Stack Overflow用户

发布于 2012-11-24 12:29:36

如果你只是在某一点上做到了这一点,那么rudolph9's answer是好的,但是如果你到处都有类似的逻辑,那么也许在你的脑海中对猴子补丁的普遍使用是有意义的:

class FalseClass; def to_i; 0 end end
class TrueClass; def to_i; 1 end end

inflection_point = firm.inflection_point.to_i

在Ruby中,你应该让你所有的逻辑处理真值,而不是01,但我猜你正在处理一些来自或到一些处理01的外部系统的输入或输出。然后,像这样做就有意义了。

票数 19
EN

Stack Overflow用户

发布于 2017-01-18 09:26:11

另一种选择是使用短路运算符:

inflection_point && 1 || 0


irb(main):001:0> true && 1 || 0
=> 1
irb(main):002:0> false && 1 || 0
=> 0
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13537206

复制
相关文章

相似问题

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