Symbol trong ruby

Share it:
Symbol trong ruby

1. Khái niệm: 
Symbol trong ruby là một đối tượng mà giá trị của nó dùng để đại diện cho tên. Symbol có thể được mô tả như là một định danh. Symbol là thông tin về ai đó chứ không phải là cái gì đó.
Ví dụ như các khóa trong mảng...
Chỗ này hơi khó hiểu, các đoạn sau sẽ nói rõ hơn.
2. Tạo biến với giá trị là một symbol
varSym = :hello
hoặc:
varSym = :"hello"
Cũng có thể sử dụng phương thức intern trong lớp string:
varSym = "hello".intern
3.Sự khác nhau giữa symbol và string
- Các symbol không phải là string.
- Symbol có thể được mô tả như là một định danh.
Ví dụ sau sẽ chỉ rõ sự khác nhau giữa symbol và string.
:"Eric".object_id == :"Eric".object_id  => true
"Eric".object_id == "Eric".object_id  => false
     Object_id là phương thức trả về định danh của đối tượng. Nếu 2 đối tượng cùng chung một object_id thì giống nhau, nghĩa là cùng trỏ tới 1 đối tượng trong vùng nhớ.
      Trong ví dụ trên, ta có thể thấy 2 symbol có cùng một object_id, nghĩa là chúng cùng trỏ tới một đối tương trong vùng nhớ. Còn 2 chuỗi thì có 2 object_id khác nhau có nghĩa là chúng tham chiếu tới 2 đối tượng khác nhau trong vùng nhớ. Bất cứ khi nào sử dụng new string thì ruby sẽ cấp phát một vùng nhớ mới cho nó.
      Máy tính sẽ cần ít bộ nhớ hơn nếu sử dụng symbol thay vì string, do đó mà các lập trình viên thường dùng symbol để đặt tên các khóa trong mảng.
Share it:

Ruby

Post A Comment:

0 comments: