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

من موسوعة حسوب
مراجعة 08:09، 5 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يُعدُّ استخدام الصنف 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

يُعيد قيم أعضاء البنية المقابلة لكل معامل مُمرَّر إليه على هيئة مصفوفة.

مصادر