Biểu tượng là chuỗi "được mã hóa", nó giống như một hằng số hơn bất kỳ thứ gì. Ví dụ điển hình:
account_details = {
:name => 'Bob',
:age => 20
}
đây những biểu tượng :name
và :age
là chìa khóa cho một băm. Chúng không bị nhầm lẫn với các biến. account_details
là một biến.
Một biến trong Ruby là một xử lý đối với một đối tượng nào đó, và đối tượng đó có thể là một biểu tượng.
Thông thường bạn sử dụng biểu tượng khi sử dụng chuỗi sẽ dẫn đến nhiều lần lặp lại. Hãy nhớ rằng các chuỗi thường là các đối tượng riêng biệt, nơi một biểu tượng riêng biệt luôn đề cập đến cùng một đối tượng, làm cho chúng hiệu quả hơn nếu được sử dụng thường xuyên.
Hãy so sánh:
"string".object_id == "string".object_id
# => false
:string.object_id == :string.object_id
# => true
Mặc dù hai chuỗi giống hệt nhau, họ là đối tượng chuỗi độc lập. Khi được sử dụng làm khóa cho băm, đối số cho phương thức và các trường hợp thông thường khác, những đối tượng này sẽ nhanh chóng làm lộn xộn bộ nhớ của bạn với số lượng lớn trùng lặp trừ khi bạn sử dụng cùng một cá thể chuỗi. Biểu tượng làm điều này cho bạn tự động.
Ngoài ra, hãy xem "[Toán tử kết nối trong Ruby là gì?] (Http://stackoverflow.com/questions/6337897/what-is-the-colon-operator-in-ruby)". –