الفرق بين المراجعتين لصفحة: «Ruby/Struct»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Struct</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Struct يعد استخدام ا...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Struct]] | [[تصنيف: Ruby Struct]] | ||
يُعد استخدام الصنف <code>Struct</code> طريقة ملائمة لتجميع مجموعة من الخاصيات (attributes) معًا، باستخدام مداخل (accessor methods) دون الحاجة إلى كتابة صنف جديد. | |||
يُنشئ الصنف <code>Struct</code> أصنافًا فرعية (subclasses) جديدة تحمل مجموعة من الأعضاء | يُنشئ الصنف <code>Struct</code> أصنافًا فرعية (subclasses) جديدة تحمل مجموعة من الأعضاء مقرونة بقيمها. لكل عضو يتم إنشاء قارئ (method reader) وكاتب (writer method) مشابهين للتابع <code>[[Ruby/Module/attr_accessor|Module#attr_accessor]]</code>. | ||
<syntaxhighlight lang="ruby">Customer = Struct.new(:name, :address) do | <syntaxhighlight lang="ruby">Customer = Struct.new(:name, :address) do | ||
def greeting | def greeting | ||
سطر 14: | سطر 14: | ||
dave.name #=> "Dave" | dave.name #=> "Dave" | ||
dave.greeting #=> "Hello Dave!"</syntaxhighlight> | dave.greeting #=> "Hello Dave!"</syntaxhighlight> | ||
راجع صفحة التابع <code>[[Ruby/Struct/new| | راجع صفحة التابع <code>[[Ruby/Struct/new|new]]</code> للحصول على مزيد من الأمثلة حول إنشاء نسخ (instances) وأصناف فرعية للصنف <code>Struct</code>. | ||
في صفحات التوابع، يشير الوسيط "member" إلى عضو من اعضاء | في صفحات التوابع، يشير الوسيط "<code>member</code>" إلى عضو من اعضاء البنية، و الذي يكون إما سلسلة نصية مقتبسة (<code>"name"</code>)، أو [[Ruby/Symbol|رمزًا]] (<code>:name</code>). | ||
== توابع الصنف العامة (Public Class Methods) == | |||
===[[Ruby/Struct/new | التابع new]]=== | |||
ينشئ كائن <code>Struct</code> جديد. | |||
== توابع النسخ العامة (Public Instance Methods) == | |||
===[[Ruby/Struct/equality_operator | التابع ==]]=== | ===[[Ruby/Struct/equality_operator | التابع ==]]=== | ||
معامل التساوي | معامل التساوي. | ||
===[[Ruby/Struct/index_operator | التابع []]]=== | ===[[Ruby/Struct/index_operator | التابع []]]=== | ||
معامل الفهرسة | معامل الفهرسة. | ||
===[[Ruby/Struct/index_operator-3D | التابع []=]]=== | ===[[Ruby/Struct/index_operator-3D | التابع []=]]=== | ||
معامل التعيين | معامل التعيين. | ||
===[[Ruby/Struct/dig | التابع dig]]=== | ===[[Ruby/Struct/dig | التابع dig]]=== | ||
يستخلص التابع <code>dig</code> القيمة المتشعبة (nested) المحددة بواسطة تسلسل الكائنات <code>key</code> | يستخلص التابع <code>dig</code> القيمة المتشعبة (nested) المحددة بواسطة تسلسل الكائنات <code>key</code>عن طريق استدعاء <code>dig</code> في كل خطوة، | ||
===[[Ruby/Struct/each | التابع each]]=== | ===[[Ruby/Struct/each | التابع each]]=== | ||
يعيد التابع <code>each</code> قيمة كل عضو من أعضاء ال[[Ruby/Struct|بنية]] بالترتيب. | يعيد التابع <code>each</code> قيمة كل عضو من أعضاء ال[[Ruby/Struct|بنية]] بالترتيب. | ||
===[[Ruby/Struct/each_pair | التابع each_pair]]=== | ===[[Ruby/Struct/each_pair | التابع each_pair]]=== | ||
يعيد التابع <code>each_pair</code> اسم وقيمة كل عضو من أعضاء ال[[Ruby/Struct|بنية]] بالترتيب. | يعيد التابع <code>each_pair</code> اسم وقيمة كل عضو من أعضاء ال[[Ruby/Struct|بنية]] بالترتيب. | ||
===[[Ruby/Struct/eql-3F | التابع eql?]]=== | ===[[Ruby/Struct/eql-3F | التابع eql?]]=== | ||
معامل التساوي القاموسي (<code>[[Ruby/Hash|Hash]]</code> | معامل التساوي القاموسي (<code>[[Ruby/Hash|Hash]]</code>) | ||
===[[Ruby/Struct/hash | التابع hash]]=== | ===[[Ruby/Struct/hash | التابع hash]]=== | ||
يعيد التابع <code>hash</code> قيمة تجزئة (hash value) استنادًا إلى محتويات هذه ال[[Ruby/Struct|بنية]]. | يعيد التابع <code>hash</code> قيمة تجزئة (hash value) استنادًا إلى محتويات هذه ال[[Ruby/Struct|بنية]]. | ||
سطر 46: | سطر 48: | ||
يُعيد أعضاء ال[[Ruby/Struct|بنية]] على هيئة [[Ruby/Array|مصفوفة]] من الرموز: | يُعيد أعضاء ال[[Ruby/Struct|بنية]] على هيئة [[Ruby/Array|مصفوفة]] من الرموز: | ||
===[[Ruby/Struct/select | التابع select]]=== | ===[[Ruby/Struct/select | التابع select]]=== | ||
يمرر التابع <code>select</code> قيم كل أعضاء ال[[Ruby/Struct|بنية]] إلى الكتلة ويعيد [[Ruby/Array|مصفوفة]] | يمرر التابع <code>select</code> قيم كل أعضاء ال[[Ruby/Struct|بنية]] إلى الكتلة ويعيد [[Ruby/Array|مصفوفة]] تحتوي قيم الأعضاء ال[[Ruby/Struct|بنية]] من <code>struct</code> التي تعيد عند تمريرها إلى الكتلة المعطاة القيمة <code>true</code> (تكافئ <code>[[Ruby/Enumerable/select|Enumerable#select]]</code>). | ||
===[[Ruby/Struct/size | التابع size]]=== | ===[[Ruby/Struct/size | التابع size]]=== | ||
يُعيد التابع <code>size</code> عدد أعضاء ال[[Ruby/Struct|بنية]]. | يُعيد التابع <code>size</code> عدد أعضاء ال[[Ruby/Struct|بنية]]. | ||
سطر 52: | سطر 54: | ||
يعيد التابع <code>to_a</code> قيم هذه ال[[Ruby/Struct|بنية]] على هيئة [[Ruby/Array|مصفوفة]] <code>[[Ruby/Array|Array]]</code>. | يعيد التابع <code>to_a</code> قيم هذه ال[[Ruby/Struct|بنية]] على هيئة [[Ruby/Array|مصفوفة]] <code>[[Ruby/Array|Array]]</code>. | ||
===[[Ruby/Struct/to_h | التابع to_h]]=== | ===[[Ruby/Struct/to_h | التابع to_h]]=== | ||
يُعيد التابع <code>to_h</ | يُعيد التابع <code>to_h</code> [[Ruby/Hash|قاموسا]] يحتوي أسماء وقيم أعضاء ال[[Ruby/Struct|بنية]]. | ||
===[[Ruby/Struct/to_s | التابع to_s]]=== | ===[[Ruby/Struct/to_s | التابع to_s]]=== | ||
يعيد [[Ruby/String|سلسلة نصية]] تحتوي وصفًا لهذه ال[[Ruby/Struct|بنية]]. | |||
===[[Ruby/Struct/values | التابع values]]=== | ===[[Ruby/Struct/values | التابع values]]=== | ||
يعيد التابع <code>values</code> قيم هذه ال[[Ruby/Struct|بنية]] على هيئة [[Ruby/Array|مصفوفة]] | يعيد التابع <code>values</code> قيم هذه ال[[Ruby/Struct|بنية]] على هيئة [[Ruby/Array|مصفوفة]]. | ||
===[[Ruby/Struct/values_at | التابع values_at]]=== | ===[[Ruby/Struct/values_at | التابع values_at]]=== | ||
يُعيد التابع <code>values_at</code> قيم أعضاء ال[[Ruby/Struct|بنية]] لكل وسيط <code>selector</code> | يُعيد التابع <code>values_at</code> قيم أعضاء ال[[Ruby/Struct|بنية]] لكل وسيط <code>selector</code> على هيئة [[Ruby/Array|مصفوفة]]. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Struct.html قسم الصنف Struct في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Struct.html قسم الصنف Struct في توثيق روبي الرسمي.] |
مراجعة 15:13، 4 نوفمبر 2018
يُعد استخدام الصنف Struct
طريقة ملائمة لتجميع مجموعة من الخاصيات (attributes) معًا، باستخدام مداخل (accessor methods) دون الحاجة إلى كتابة صنف جديد.
يُنشئ الصنف Struct
أصنافًا فرعية (subclasses) جديدة تحمل مجموعة من الأعضاء مقرونة بقيمها. لكل عضو يتم إنشاء قارئ (method reader) وكاتب (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
).
توابع الصنف العامة (Public Class Methods)
التابع new
ينشئ كائن Struct
جديد.
توابع النسخ العامة (Public Instance Methods)
التابع ==
معامل التساوي.
التابع []
معامل الفهرسة.
التابع []=
معامل التعيين.
التابع dig
يستخلص التابع dig
القيمة المتشعبة (nested) المحددة بواسطة تسلسل الكائنات key
عن طريق استدعاء dig
في كل خطوة،
التابع each
يعيد التابع each
قيمة كل عضو من أعضاء البنية بالترتيب.
التابع each_pair
يعيد التابع each_pair
اسم وقيمة كل عضو من أعضاء البنية بالترتيب.
التابع eql?
معامل التساوي القاموسي (Hash
)
التابع hash
يعيد التابع hash
قيمة تجزئة (hash value) استنادًا إلى محتويات هذه البنية.
التابع inspect
يعيد التابع inspect
سلسلة نصية تحتوي وصفًا لهذه البنية.
التابع length
يُعيد عدد أعضاء البنية.
التابع members
يُعيد أعضاء البنية على هيئة مصفوفة من الرموز:
التابع select
يمرر التابع select
قيم كل أعضاء البنية إلى الكتلة ويعيد مصفوفة تحتوي قيم الأعضاء البنية من struct
التي تعيد عند تمريرها إلى الكتلة المعطاة القيمة true
(تكافئ Enumerable#select
).
التابع size
يُعيد التابع size
عدد أعضاء البنية.
التابع to_a
يعيد التابع to_a
قيم هذه البنية على هيئة مصفوفة Array
.
التابع to_h
يُعيد التابع to_h
قاموسا يحتوي أسماء وقيم أعضاء البنية.
التابع to_s
يعيد سلسلة نصية تحتوي وصفًا لهذه البنية.
التابع values
يعيد التابع values
قيم هذه البنية على هيئة مصفوفة.
التابع values_at
يُعيد التابع values_at
قيم أعضاء البنية لكل وسيط selector
على هيئة مصفوفة.