Sto solo imparando Ruby e non capisco la differenza tra diversi metodi Ruby con e senza un '!' alla fine. Qual è la differenza? Perché dovrei usarne uno sull'altro?Differenza tra downcase e downcase! in Ruby
risposta
I metodi con un punto esclamativo alla fine sono spesso chiamati metodi bang. Un metodo bang non modifica necessariamente il suo ricevitore e non vi è alcuna garanzia che i metodi senza un punto esclamativo non lo facciano.
È tutto molto ben spiegato in this blog post. Per citare il post:
Il! nei nomi dei metodi che terminano con! significa "Questo metodo è pericoloso" - o, più precisamente, questo metodo è la versione "pericolosa" di un altro metodo equivalente , con lo stesso nome meno il!. "Pericolo" è relativo; il ! non significa assolutamente nulla a meno che il nome del metodo in cui è corrisponda a un nome di metodo simile ma senza bagliore.
e
L'! non significa "Questo metodo cambia ricevitore." Molti dei metodi "pericolosi" cambiano i loro ricevitori . Ma alcuni no. Io ripeto: ! non significa che il metodo cambia il suo ricevitore .
Il metodo non-bang downcase() restituisce semplicemente un nuovo oggetto che rappresenta la stringa di downcased.
La versione bang modifica la stringa stessa.
my_text = "MY TEXT"
my_new_text = my_text.downcase
puts my_new_text # will print out "my text"
puts my_text # will print out "MY TEXT" - the non-bang method doesn't touch it
my_text.downcase!
puts my_text # will print out "my text". The bang version has modified the object you're calling the method on
- 1. Rotaie Attivi Registra la traduzione: Auto capitalizza/downcase?
- 2. Differenza tra "e" e && in Ruby?
- 3. Ruby - Differenza tra: variabile e @variabile
- 4. Qual è la differenza tra Ruby e Ruby on Rails?
- 5. Ottenere differenza tra array in Ruby
- 6. Qual è la differenza tra Metodi e Attributi in Ruby?
- 7. Differenza tra operatori di stringa + e << in Ruby
- 8. Differenza tra lambda e -> operatore in Ruby
- 9. Qual è la differenza tra Object e BasicObject in Ruby?
- 10. Differenza tra il metodo as_json e to_json in Ruby
- 11. Rubino: Differenza tra istanza e variabili locali in Ruby
- 12. Qual è la differenza tra "include" e "anteporre" in Ruby?
- 13. In Ruby, qual è la differenza tra String() e #to_s
- 14. Differenza tra. e #
- 15. Differenza tra `% in%` e `` ==
- 16. Differenza tra @istanza_variabile e attr_accessor
- 17. Differenza tra String.scan e String.split
- 18. Qual è la differenza tra Ruby on Rails e Grails?
- 19. Ruby - Differenza tra matrice # << e matrice # push
- 20. Ruby - qual è la differenza tra virgolette singole e doppie?
- 21. Differenza tra "" e "" in Python
- 22. Differenza tra $ @ e $! in perl
- 23. Differenza tra. e: in Lua
- 24. Spogliarello caratteri non alfanumerici, ma lasciando spazi in Ruby
- 25. Differenza tra "o" e "||"
- 26. MySQL: Differenza tra ",", "e"
- 27. Differenza tra oggetto e *?
- 28. Differenza tra ". +" E ". +?"
- 29. Differenza tra | = e^= css
- 30. CMake: differenza tra $ {} e "$ {}"