2010-10-31 33 views

Trả lời

47

to_sym chuyển đổi chuỗi thành ký hiệu. Ví dụ: "a".to_sym trở thành :a.

Nó không dành riêng cho Rails; vani Ruby cũng vậy.

Dường như trong một số phiên bản của Ruby, một biểu tượng có thể được chuyển đổi thành và từ một Fixnum. Nhưng irb từ Ruby 1.9.2-p0, từ ruby-lang.org, không cho phép điều đó trừ khi bạn thêm phương thức to_sym của riêng mình vào Fixnum. Tôi không chắc liệu Rails có làm điều đó hay không, nhưng dường như không có ích gì trong mọi trường hợp.

+5

nếu bạn đang sử dụng to_sym trong mã của bạn, hãy cẩn thận! Bạn có thể có một tỏi tây. các biểu tượng không bao giờ được unallocated bởi ruby. – fotanus

+28

@fotanus Tôi giả sử bạn có nghĩa là bộ nhớ ** bị rò rỉ **, thay vì một số loại rau: http://en.wikipedia.org/wiki/Leek –

+0

Xin chào @cHao, cảm ơn bạn đã trả lời. Bạn có thể vui lòng cho biết tại sao '.to_sym!' (Với '!') Không hoạt động. Tôi đã sử dụng nó trong ideone này: http://ideone.com/D7dZNz và nó không có vẻ là làm việc. Cảm ơn bạn! –