当前位置:  开发笔记 > 后端 > 正文

Ruby是真的,假的还是无的

如何解决《Ruby是真的,假的还是无的》经验,为你挑选了1个好方法。

我有一个boolean var的对象.

 field :processing, :type => Boolean

在我面前的开发人员写了一些代码说这个.

 :processing => nil 

(出于某种原因,他将其设置为nil而不是false.)

然后他做了这个if语句

 return if self.processing
 dosomethingelse....

如果我编写代码来执行此操作

:processing => false 

下次运行此代码时会发生什么?dosomethingelse运行吗?

return if self.processing
dosomethingelse....

更新===========

对于下面的许多问题,我们将在此回答.

我加了这个

  field :processing, :type => Boolean, :default => false

它打破了应用程序.当我改变到上面的dosomethingelse永远不会运行?
return if self.processing回报.有什么建议?

更新2 =======================================

以下是对我的代码(编辑)中的处理的每个引用.如果重要的话,我也在使用MongoDB.

.where(:processing => nil).gt(:retries => 0).asc(:send_time).all.entries


if self.processing 
end


return if self.processing
self.update_attributes(:processing => true)
dosomethingelse....


.where(:sent_time => nil).where(:processing => nil).gt(:retries => 0).asc(:send_time).all.entries

:processing => nil

Nermin.. 7

Ruby使用truthyfalsey.

falsenilfalsey,其他一切都是truthy.

if true
  puts "true is truthy, duh!"
else
  puts "true is falsey, wtf!"
end

输出是 "true is truthy, duh!"

if nil
  puts "nil is truthy"
else
  puts "nil is falsey"
end

输出是 "nil is falsey"

if 0
  puts "0 is truthy"
else
  puts "0 is falsey"
end

输出是 "0 is truthy"

看到这个解释是真是假



1> Nermin..:

Ruby使用truthyfalsey.

falsenilfalsey,其他一切都是truthy.

if true
  puts "true is truthy, duh!"
else
  puts "true is falsey, wtf!"
end

输出是 "true is truthy, duh!"

if nil
  puts "nil is truthy"
else
  puts "nil is falsey"
end

输出是 "nil is falsey"

if 0
  puts "0 is truthy"
else
  puts "0 is falsey"
end

输出是 "0 is truthy"

看到这个解释是真是假

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有