我们可以有一个布尔函数,因此我们不需要使用'!' 假设我有一个布尔函数has_done_something?和 我想要做另一个动作,只有当用户还没有做那个动作 所以我可以做!has_done_something?或通过编写函数has_not_done_something? 。 只是猜测轨道提供某种方式(或应提供此功能)?布尔方法的更好方法rails
-1
A
回答
-1
不,目的不同。惊叹号意味着很多事情,它更危险。没有什么比它更好的了。这是为了表明你在做什么是不同的。
在Ruby中,您可以编写名称以!结尾的方法! (感叹号或“爆炸”)。
在标准方法中,它通常用于指示一个方法,该方法会导致对象自身发生变异,但并非总是如此。
当我说mutate itself
,这意味着对象本身得到改变,即使你没有分配它本身。
一个很好的例子就是在Java中有String
和StringBuffer/StringBuilder
。
StringBuffer/StringBuilder
对象是可变的。
同样的事情在这里。
那么什么是foo.downcase!和foo.downcase
foo.downcase!
将把对象foo
本身修改为无符号而不需要赋值给任何其他对象。
的foo.downcase
,除非它被分配给某个对象喜欢做这样的事情不会修改对象:栏= foo.downcase在你的代码
所以使用它的时候,你想做些什么危险的,尤其是当存在两个同名的方法,其中一个比另一个更“危险”。 “危险”可能意味着几乎任何东西。
相关问题
- 1. 将int转换为布尔值的更好方法
- 2. 如何更改方法中布尔方法的值?
- 3. 在Rails中更新布尔值时未定义的方法
- 4. 我的布尔方法java
- 5. 这种布尔方法是不好的做法吗?
- 6. &&不会在布尔方法
- 7. *方法*调用布尔值
- 8. 使用布尔方法
- 9. JNI,调用布尔方法
- 10. 与update_attributes方法布尔场
- 11. C#私有方法布尔
- 12. 哪种方法布局更好?
- 13. 无法找到方法setModal(布尔)
- 14. 更好的重构方法?
- 15. 比MD5更好的方法?
- 16. DTOs更好的方法?
- 17. Python中更好的方法
- 18. AJAX - Django - 更好的方法?
- 19. 比BufferedReader.readLine()更好的方法?
- 20. 方法中的一个方法,以取代布尔语句
- 21. 更好的方式来订购内的方法调用方法
- 22. 如何在Rails的字符串类中定义布尔方法?
- 23. Rails - 返回布尔值的方法。有时变成空白
- 24. Mutator方法中的布尔值
- 25. 优化随机布尔值的方法
- 26. 返回布尔值的方法?
- 27. 带字符串的布尔方法
- 28. list_display - 方法的布尔图标
- 29. NativeQuery更好或HibernateOGM方法
- 30. CSS - 哪种方法更好?
问题是关于!在前面倒置一个方法响应,而不是以!结尾的方法。 – sevenseacat 2013-02-12 08:19:18