# زبان های اسکریپتی > دیگر زبان های اسکریپتی > سوال: Symbol در Ruby

## amiref

سلام
کسی مفهوم symbol رو در ruby میدونه ؟

----------


## r00tkit

سلام

جایی ندیدم یه تعریف از symbol باشه   همیشه تو کتاب ها خواصش رو به عنوان تعریفش بیان می کنن 

منم همین کار رو می کنم

در اصل مفسر روبی یه جدول داره برای نگه داری اسم کلاس ها متود ها و  متغیر ها  که می شناسشون
که برای کار های درونی ازش استفاده می کنه

اما سیمبول ها فقط توسط مفسر استفاده نمی شه بلکه برنامه نویس هم می تونه ازش استفاد کنه

شما می تونی با استفاده از یه : یه سیمبول درست کنی 

که طرف راست : می تونه یه رشته باشه یا یه اسم

مثال:

:"geek"
:geek
شما می تونی سیمبول رو یه رشته در نظر بگیری با این فرق
1) چند تا  رشته می تونی داشته باشی که محتواشون یکی باشه ولی به جا های مخطلف اشاره کنن  یعنی  شی های مخطلف باشه  

2) سیمبول برخلاف رشته در روبی immutable  هستش و  همچنین garbage-collect نمی شه 

3)Symbol objects represent names and some strings *inside* the Ruby  interpreter.

مثال زیر رو داشته باش:



array = ["foo", "foo", "foo", :foo, :foo, :foo]

سه تا رشته ی اولی سه شی جدا هستن ولی 3 تای دومی همشون به یه جا اشاره می کنن

intern وto_sym برای تبدیل کردن به سیمبول استفاده می شه

امید وارم کمی کرده باشم

----------

