我們可以有一個布爾函數,因此我們不需要使用'!' 假設我有一個布爾函數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. 布爾和方法
- 2. 更改布爾方法的值
- 3. 將int轉換爲布爾值的更好方法
- 4. 找到3個布爾變量組合的更好方法
- 5. 如何更改方法中布爾方法的值?
- 6. 在Rails中更新布爾值時未定義的方法
- 7. ArrayList的布爾方法
- 8. Java的布爾方法
- 9. 我的布爾方法java
- 10. Ruby中的布爾方法?
- 11. 這種布爾方法是不好的做法嗎?
- 12. 布爾,如果方法,
- 13. 布爾方法混淆
- 14. *方法*調用布爾值
- 15. 與update_attributes方法布爾場
- 16. JNI,調用布爾方法
- 17. C#私有方法布爾
- 18. 使用布爾方法
- 19. &&不會在布爾方法
- 20. 哪種方法佈局更好?
- 21. 無法找到方法setModal(布爾)
- 22. 比MD5更好的方法?
- 23. Python中更好的方法
- 24. 更好的方法瓦拉
- 25. 更好的重構方法?
- 26. 更好的方法在Django
- 27. DTOs更好的方法?
- 28. 比BufferedReader.readLine()更好的方法?
- 29. AJAX - Django - 更好的方法?
- 30. 更好的方法來做嵌套集合的JavaScript中的布爾數組
問題是關於!在前面倒置一個方法響應,而不是以!結尾的方法。 – sevenseacat 2013-02-12 08:19:18