2013-01-16 32 views

Trả lời

7

Điều đó có nghĩa là bạn không thể sửa đổi nó. Bạn đặt nó theo phương thức freeze.

s = "a" 

concat sửa đổi thể hiện chuỗi.

s.concat("b") 
# => "ab" 

Khi bạn đóng băng các chuỗi:

s.freeze 

sau đó, bạn không thể áp dụng concat nữa.

s.concat("c") 
# => RuntimeError: can't modify frozen String 

Tuy nhiên, bạn có thể áp dụng phương pháp mà không sửa đổi người nhận:

s + "c" 
# => "abc" 
2

Ngăn chặn thay đổi hơn nữa để obj. Một RuntimeError sẽ được nâng lên nếu sửa đổi được cố gắng. Không có cách nào để giải phóng một vật thể đông lạnh. Xem thêm Object # frozen ?.

a = [ "a", "b", "c" ] 
a.freeze 
a << "z" 

sản xuất:

prog.rb:3:in `<<': can't modify frozen array (RuntimeError) 
from prog.rb:3 

Doco

Các vấn đề liên quan