Co Ruby oznacza dla obiektu String
lub Array
(etc) jako "Frozen"? Jak/gdzie ta właściwość jest ustawiona lub zmodyfikowana?Obiekty zamrożone w Ruby
5
A
Odpowiedz
7
Oznacza to, że nie można go zmodyfikować. Ustawia się to metodą freeze
.
s = "a"
concat
modyfikuje instancję napisu.
s.concat("b")
# => "ab"
Po zamrożeniu ciągu:
s.freeze
następnie, nie można zastosować concat
więcej.
s.concat("c")
# => RuntimeError: can't modify frozen String
Można jednak stosować metody, które nie modyfikują Odbiornik:
s + "c"
# => "abc"
2
zapobiega dalszemu modyfikacji obj. RuntimeError zostanie podniesiony, jeśli podjęto próbę modyfikacji. Nie ma możliwości odmrożenia zamrożonego obiektu. Zobacz także Object # frozen.
a = [ "a", "b", "c" ]
a.freeze
a << "z"
produkuje:
prog.rb:3:in `<<': can't modify frozen array (RuntimeError)
from prog.rb:3
Powiązane problemy
- 1. W jaki sposób obiekty WPF pochodzące z Freezable mogą być zamrożone w XAML?
- 2. Jak dołączyć obiekty JSON do siebie w Ruby
- 3. Jak wyświetlić wszystkie obiekty utworzone z klasy w Ruby?
- 4. W jaki sposób WPF DataGrid przechowuje zamrożone wiersze/kolumny?
- 5. Niezmienne obiekty w PHP?
- 6. Obiekty rekursywne w F #?
- 7. Obiekty strukturalne w pythonie
- 8. Przezroczyste obiekty w Threejs
- 9. Obiekty Delphi, obiekty NIL i interfejsy
- 10. Core Data łączy dwa obiekty zarządzane obiekty
- 11. Jak tworzyć obiekty testowe z zagnieżdżonymi atrybutami za pomocą FactoryGirl w Ruby on Rails?
- 12. Jak klonować obiekty w NHibernate?
- 13. Zagnieżdżone obiekty w schematach mangusty
- 14. Parsowanie tablicy JSON w obiekty?
- 15. Konwersja elementów DOM w obiekty
- 16. Jak tworzyć obiekty w Perlu?
- 17. Jak klonować obiekty w Scali?
- 18. Jak przekazywać obiekty w EventArgs
- 19. odniesienia nieużywane obiekty w vb.net
- 20. Obiekty głębokiego kopiowania w Angular
- 21. Obiekty wewnątrz obiektów w OCaml
- 22. DRY unikatowe obiekty w Django
- 23. Obiekty głęboko kopiujące w kanciastym?
- 24. Obiekty LocalProxy w Flask-SQLAlchemy
- 25. Git: obiekty Przeglądaj w odległym
- 26. Jak osadzić Ruby w C++?
- 27. Jak zrobić instancję obiektu hash w Ruby?
- 28. Jak wyrównać obiekty w pionie w ASP.NET?
- 29. Jak tworzyć obiekty w locie w python?
- 30. Porównaj obiekty w pudełku w C#