布尔方法rails的更好方法



我们能不能有一个布尔函数,这样我们就不需要使用'!'假设我有一个布尔函数has_done_something?和只有当用户还没有执行另一个操作时,我才想执行该操作这样我就可以做到了!有什么事吗?或者通过编写函数has_not_done_something。只是猜测rails是否提供了某种方式(或者应该提供此功能)?

不,目的不同。感叹号意味着很多东西,它更为人所知的是危险。没有什么比这更好的选择了。这表明你正在做的事情不同。

在Ruby中,您可以编写名称以结尾的方法!(感叹号或"砰"的一声)。

在标准方法中,它通常用于指示导致对象自身发生变异的方法,但并不总是如此。

当我说mutate itself时,这意味着对象本身会发生更改,即使您没有在其内部分配它。

一个很好的例子是,在Java中有StringStringBuffer/StringBuilder

StringBuffer/StringBuilder对象是可变的。

这里也一样。

那么什么是foo.downcase!和foo.downcase

CCD_ 5将修改对象foo本身以降频,而不需要分配给任何其他对象。

foo.downcase不会修改对象,除非它被分配给某个对象,比如做一些事情:bar=foo.downcase

因此,在你的代码中,当你想做一些危险的事情时,尤其是当存在两个同名的方法,其中一个比另一个更"危险"时,请使用它。"危险"几乎可以指任何东西。

检查爆炸方法或危险会影响

相关内容

  • 没有找到相关文章

最新更新