In Ruby, cosa significa per un oggetto String
o Array
(ecc.) "Frozen"? Come/dove è impostata o modificata questa proprietà?Oggetti congelati in Ruby
5
A
risposta
7
Significa che non è possibile modificarlo. Si imposta tramite il metodo freeze
.
s = "a"
concat
modifica l'istanza della stringa.
s.concat("b")
# => "ab"
Quando si congela la stringa:
s.freeze
allora, non è possibile applicare concat
più.
s.concat("c")
# => RuntimeError: can't modify frozen String
Tuttavia, è possibile applicare i metodi che non modificano il ricevitore:
s + "c"
# => "abc"
2
Impedisce ulteriori modifiche a obj. Un RuntimeError verrà sollevato se si tenta di modificare. Non c'è modo di scongelare un oggetto congelato. Vedi anche l'oggetto # congelato ?.
a = [ "a", "b", "c" ]
a.freeze
a << "z"
produce:
prog.rb:3:in `<<': can't modify frozen array (RuntimeError)
from prog.rb:3
Problemi correlati
- 1. Creazione di nuovi oggetti da oggetti padre congelati
- 2. In che modo gli oggetti WPF derivanti da Freezable possono essere congelati in XAML?
- 3. Inizializzazione di oggetti DRY'er in Ruby
- 4. File XML di Eclipse Android congelati
- 5. MySQL in Docker congelati a password di root config
- 6. Creazione di oggetti in fase di esecuzione in Ruby
- 7. Scoprire i membri degli oggetti Ruby?
- 8. Ruby rimuove gli oggetti duplicati dall'array
- 9. Collezione Garbarge in Ruby con riferimenti a oggetti circolari
- 10. In che modo Ruby è completamente orientato agli oggetti?
- 11. Python: lista mischiare, ma mantenendo alcuni elementi congelati
- 12. Exim - Un sacco di messaggi congelati senza mittente
- 13. collezioni congelati non e tipi definiti dall'utente su Cassandra 2.1.8
- 14. Ruby/Rspec: è possibile confrontare il contenuto di due oggetti?
- 15. Ruby è davvero un linguaggio completamente orientato agli oggetti?
- 16. Ruby: Perché Array.sort è lento per oggetti di grandi dimensioni?
- 17. Cosa fa == in Ruby?
- 18. Puoi passare oggetti ruby a haml durante un rendering?
- 19. Ruby è compatibile con il rigoroso Pattern oggetti pagina?
- 20. Fooling Operatore del caso Ruby, ===, con oggetti proxy
- 21. Inversione enumerabile in Ruby
- 22. Gli oggetti Ruby hanno un limite di dimensioni?
- 23. Come posso recuperare oggetti cancellati da Active Directory con Ruby?
- 24. Come creare oggetti ed i suoi metodi in modo dinamico in Ruby come in Javascript?
- 25. Traccia il codice in Ruby?
- 26. Uso reale di oggetti rilegati in rubino
- 27. Oggetti all'interno di oggetti in OCaml
- 28. Ordinamento di una matrice di oggetti in Ruby per attributo oggetto?
- 29. Come posso elencare tutti gli oggetti creati da una classe in Ruby?
- 30. Come si esegue iterazione su oggetti record attivi in Ruby On Rails?