Z pewnością wiele osĂłb zastanawia się czym się rĂłżni “orzech” od :orzech
API RailsĂłw w dużej mierze pozwala na przekazywanie parametrow do funkcji za pomocą stringĂłw i symboli np.
Article.find :first, :conditions=>"available=true"
W powyższym przeypadku przekazujemy 2 parametry: :first oraz :conditions
W większości przypadkĂłw można zamiast symbolu użyć stringa, jednak w jeśli nie potrzebujemy całej funkcjonalności klasy String to lepiej użyć symbolu.
Symbol raz zdefiniowany w ktĂłrymś miejscu w programie, będzie wykorzystany pĂłźniej w innym.
Operowanie symbolami jest szybsze i zużywa mniej pamięci.
Oto przykład
./script/console albu sesja Irb'a:
Wpisujemy:
"orzech".id
"orzech".id
:orzech.id
:orzech.id
Okazuje się że id obiektu, ktĂłry jest symbolem pozostaje takie samo (jest to jeden i ten sam obiekt), natomiast string to 2 rĂłżne obiekty.
Podsumowując, symbole są idealne jeśli, potrzebujemy “słownych wskaźnikĂłw” w kodzie. Oczywiście zawsze możemy zamienić stringa na symbol i vice versa jeśli mamy taką potrzebę
“orzech”.to_sym