الصنف Struct
في روبي
يُعدُّ استخدام الصنف Struct
طريقةً ملائمةً لتجميع مجموعة من الخاصيات (attributes) معًا، باستخدام مداخل (accessor methods) دون الحاجة إلى كتابة صنف جديد.
يُنشئ الصنف Struct
أصنافًا فرعيةً (subclasses) جديدةً تحمل مجموعة من الأعضاء مقرونة بقيمها. لكل عضو يتم إنشاء قارئ (reader method) وكاتب (writer method) مشابهين للتابع Module.attr_accessor
.
Customer = Struct.new(:name, :address) do
def greeting
"Hello #{name}!"
end
end
dave = Customer.new("Dave", "123 Main")
dave.name #=> "Dave"
dave.greeting #=> "Hello Dave!"
راجع صفحة التابع new
للحصول على مزيد من الأمثلة حول إنشاء نسخ (instances) وأصناف فرعية للصنف Struct
.
في صفحات التوابع، يشير الوسيط "member
" إلى عضو من اعضاء البنية، والذي يكون إما سلسلةً نصيةً مقتبسةً ("name"
)، أو رمزًا (:name
).
الثوابت
Tms
توابع الصنف العامة
new
ينشئ صنفًا فرعيًّا جديدًا أو نسخةً جديدةً من الصنف Struct
.
توابع النسخة العامة
==
يتحقق إن كان لبنية ما نفس الصنف الفرعي ونفس قيم الأعضاء مقارنةً ببنية أخرى.
[]
يجلب قيمة عضو البنية المعطى، أو قيمة العضو ذي الفهرس المحدَّد.
[]=
يضبط عند استدعائه بالشكل struct[member/index] = obj
قيمة عضوالبنية member
المعطى أو العضو الموجود عند الفهرس index
إلى القيمة obj
.
dig
يستخلص القيمة المتشعبة (nested) المحددة بواسطة تسلسل الكائنات المعطاة عن طريق استدعاء dig
في كل خطوة.
each
يعيد قيمة كل عضو من أعضاء البنية بالترتيب.
each_pair
يعيد اسم وقيمة كل عضو من أعضاء البنية بالترتيب.
eql?
يتحقق التابع eql?
إن كانت بنيتان تشيران إلى نفس مفتاح الجدول Hash
أي إذا كان لهما نفس صنف البنية الفرعي، وكانت قيم أعضائهما متساوية.
hash
يعيد القيمة hash استنادًا إلى محتويات هذه البنية.
inspect
يعيد سلسلة نصية تحتوي وصفًا لهذه البنية.
length
يُعيد عدد أعضاء البنية.
members
يُعيد أعضاء البنية على هيئة مصفوفة من الرموز.
select
يمرر قيم كل أعضاء البنية إلى الكتلة المعطاة ويعيد مصفوفة تحتوي قيم الأعضاء التي أعادت الكتلة معها القيمة true
.
size
يُعيد عدد أعضاء البنية التي استُدعي معها.
to_a
يعيد قيم هذه البنية على هيئة مصفوفة.
to_h
يُعيد جدول Hash يحوي أسماء وقيم أعضاء البنية.
to_s
يعيد سلسلة نصية تحتوي وصفًا لهذه البنية.
values
يعيد قيم هذه البنية على هيئة مصفوفة.
values_at
يُعيد قيم أعضاء البنية المقابلة لكل معامل مُمرَّر إليه على هيئة مصفوفة.