ruk*_*_21 3 ruby ruby-on-rails
所以,我有一个同事的代码有很多return false和return true.
例如这种方法:
def has_only_one_uploaded_image?
return false if images.size > 1
method_here
end
Run Code Online (Sandbox Code Playgroud)
如果我删除了false作为返回值,如果我从其他条件使用它,它仍然可以工作吗?
喜欢这种方法......
def commission_plan_product_available?
(has_only_one_uploaded_image? ||
(has_many_images? && images_are_saved?))
end
Run Code Online (Sandbox Code Playgroud)
我很困惑何时使用正确的boolean返回,何时不应该.
我是Ruby的新手(不确定是否nil也可以false在条件下,请耐心等待.谢谢.
有人可以解决一些问题吗?
nil是"falsey",如果直接在有条件使用-或组合使用逻辑运算符&&,||等等,将表现一样false,和你想你的,它使用应该工作.
但是,通常更好的做法是从行为类似布尔值的方法返回true或输入false值.很少或没有额外的成本,true并且false与Ruby内部是相同的东西nil(具有固定内容的简单VALUE,它不被解析为指针).
nil当你有一个方法可以返回你要求的对象时,或者出于某种充分的理由"没有"(例如,你要求具有特定id的用户,但没有这样的用户),返回有条件地更有意义.
如果有疑问,请考虑如何记录该方法.如果你需要解释给用户为什么它返回 true或nil和该选项的解释似乎令人费解,那么它就会简单得多做的是预期和返回true或false
对于极少数方法,它甚至可能有意义返回true,false或者nil- 最后一个基本上是"我不知道".一种方法,用于缓存另一个返回true或false可能执行此操作的方法的输出.
| 归档时间: |
|
| 查看次数: |
5439 次 |
| 最近记录: |