الصنف Symbol في روبي

من موسوعة حسوب

تمثل كائنات الصنف Symbol أسماء وسلاسل نصية داخل مترجم (interpreter) روبي. يمكن إنشاؤها باستخدام الصياغتين الحرفيتين ‎:name و ‎:"string"‎، أو بواسطة التوابع to_sym.

سيتم إنشاء نفس الرمز (نفس الكائن Symbol) لاسم أو سلسلة نصية معينة طوال مدة تنفيذ البرنامج، بغض النظر عن السياق أو معنى هذا الاسم. وبالتالي، إن كان Fred ثابتًا في سياق معيّن، وتابعًا في سياق آخر، وصنفًا في سياق ثالث، فسيكون الرمز Symbol :Fred نفس الكائن في جميع السياقات الثلاث.

module One
  class Fred
  end
  $f1 = :Fred
end
module Two
  Fred = 1
  $f2 = :Fred
end
def Fred()
end
$f3 = :Fred
$f1.object_id   #=> 2514190
$f2.object_id   #=> 2514190
$f3.object_id   #=> 2514190‎

توابع الصنف العامة

all_symbols

يُعيد مصفوفة تضم جميع الرموز الموجودة حاليًا في جدول رموز روبي.

توابع النسخ العامة

<=>

يقارن بين رمزين ثم يعيد ‎-1 أو 0 أو ‎+1 بناءً على ما إذا كان الرمز الأول أصغر من أو يساوي أو أكبر من الرمز الثاني.

==

يتحقق من تساوي رمزين أي إن كان هذان الرمزان هما نفس الرمز.

===

يتحقق إن كان رمزان هما نفس الرمز.

~=

يعيد ناتج التعبير sym.to_s =~ obj.

[]

يعيد ناتج التعبير sym.to_s[]‎.

capitalize

يشبه التعبير sym.to_s.capitalize.intern.

casecmp

يقارن بين رمزين بشكل غير حساس لحالة الأحرف.

casecmp?‎

يتحقق إن كان الرمز الذي استُدعي معه والرمز المُمرَّر إليه متساويين بشكل غير حساس لحالة الأحرف.

downcase

يشبه التعبير sym.to_s.downcase.intern.

empty?‎

يتحقق مما إذا كان الرمز فارغًا.

encoding

يُعيد الترميز الذي يمثل الرمز التي استُدعي معه.

id2name

يعيد الاسم أو السلسلة نصية التي تمثل الرمز.

inspect

يعيد تمثيلًا نصيًا للرمز التي استُدعي معه على هيئة رمز حرفي (symbol literal).

intern

يعيد بشكل عام الرمز المقابل لكائن ما. لذلك، عند استدعائه مع رمز، فسيعيد الرمز نفسه.

length

يشبه التعبير sym.to_s.length.

match

يعيد ناتج التعبير sym.to_s.match.

match?‎

يعيد ناتج التعبير sym.to_s.match?‎.

next

يشبه التعبير sym.to_s.succ.intern.

size

يشبه التعبير sym.to_s.length.

slice

يعيد ناتج التعبير sym.to_s[]‎.

succ

يشبه التعبير sym.to_s.succ.intern.

swapcase

يشبه التعبير sym.to_s.swapcase.intern.

to_proc

يعيد كائنًا من النوع Proc، والذي يستجيب للتابع المعطى من قبل الرمز.

to_s

يعيد الاسم أو السلسلة نصية التي تمثل الرمز.

to_sym

يعيد بشكل عام الرمز المقابل لكائن. لذلك، عند استدعائه مع رمز، فسيعيد هذا الرمز نفسه (يعيد الكائن self).

upcase

يشبه التعبير sym.to_s.upcase.intern.

مصادر