الفرق بين المراجعتين لصفحة: «Ruby/Class/ new»

من موسوعة حسوب
< Ruby‏ | Class
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new</code> في الصنف <code>Class</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby ARGF]]
[[تصنيف: Ruby ARGF]]
يُنشئ التابع [[Ruby/Class/new | <code>new</code>]] صنفًا جديدًا مجهولًا غير مسمى (<code>unnamed</code>) من الصنف الأب ([[Ruby/Class/superclass | <code>superclass</code>]]) الممرر إليه (أو من الصنف <code>Object</code> إن لم يمرر إليه أي شيء). يمكن إعطاء صنف ما اسمًا عن طريق تعيين كائن الصنف[<code>a</code>][<code>b</code>] (<code>class</code> <code>object</code>) وإعطائه قيمة ثابتة.
يُنشئ التابع <code>new</code> صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب ( <code>superclass</code>) الممرر إليه (أو من الصنف <code>Object</code> إن لم يمرر إليه أي شيء). يمكن إعطاء صنف ما اسمًا عن طريق تعيين كائن الصنف[(class object) وإعطائه قيمة ثابتة.
إن أعطيت كتلة برمجية، فسيُمرَّر إليها كائن الصنف (<code>class</code> <code>object</code>)، وستقدَّر الكتلة في سياق ذلك الصنف كما هو الحال مع <code>class_eval</code>.
 
إن أعطيت كتلة برمجية، فسيُمرَّر إليها كائن الصنف (class object)، وستقدَّر الكتلة في سياق ذلك الصنف كما هو الحال مع <code>class_eval</code>.
 
عيِّن الصنف وأعطه قيمة ثابتة (يبدأ الاسم بأحرف كبيرة) إذا كنت تريد معاملته كصنف اعتيادي.
عيِّن الصنف وأعطه قيمة ثابتة (يبدأ الاسم بأحرف كبيرة) إذا كنت تريد معاملته كصنف اعتيادي.
==البنية العامة==
==البنية العامة==
سطر 13: سطر 15:
يعاد صنف.
يعاد صنف.
==أمثلة==
==أمثلة==
مثال على استخدام  التابع [[Ruby/Class/new | <code>new</code>]]:
مثال على استخدام  التابع <code>new</code>:
<syntaxhighlight lang="ruby"> fred = Class.new do
<syntaxhighlight lang="ruby"> fred = Class.new do
  def meth1
  def meth1
سطر 32: سطر 34:
* التابع [[Ruby/Class/inherited | <code>inherited</code>]]: يُستدعَى كرد نداء في كل مرة يُنشأ فيها صنف فرعي (<code>subclass</code>) من الصنف الحالي.
* التابع [[Ruby/Class/inherited | <code>inherited</code>]]: يُستدعَى كرد نداء في كل مرة يُنشأ فيها صنف فرعي (<code>subclass</code>) من الصنف الحالي.
* التابع [[Ruby/Class/new | <code>new</code>]]: يستدعي التابعَ [[Ruby/Class/allocate | <code>allocate</code>]] لإنشاء كائن جديد من الصنف <code>class</code>، ثم يستدعي التابع <code>initialize</code> مع ذلك الكائن المنشأ ويُمرِّر إليه وسائط محددة.
* التابع [[Ruby/Class/new | <code>new</code>]]: يستدعي التابعَ [[Ruby/Class/allocate | <code>allocate</code>]] لإنشاء كائن جديد من الصنف <code>class</code>، ثم يستدعي التابع <code>initialize</code> مع ذلك الكائن المنشأ ويُمرِّر إليه وسائط محددة.
* التابع [[Ruby/Class/superclass | <code>superclass</code>]]: يعيد الصنف الأب ([[Ruby/Class/superclass | <code>superclass</code>]]) للصنف المستدعى معه.
* التابع [[Ruby/Class/superclass | <code>superclass</code>]]: يعيد الصنف الأب ( <code>superclass</code>) للصنف المستدعى معه.
==مصادر==
==مصادر==
* قسم التابع new في الصنف Class في توثيق روبي الرسمي.
* [http://ruby-doc.org/core-2.5.1/Class.html#method-c-new قسم التابع new في الصنف Class في توثيق روبي الرسمي.]
[a]أم الكائن class؟
[b]جملتك صحيحة. اتركها.

مراجعة 14:16، 12 سبتمبر 2018

يُنشئ التابع new صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب ( superclass) الممرر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). يمكن إعطاء صنف ما اسمًا عن طريق تعيين كائن الصنف[(class object) وإعطائه قيمة ثابتة.

إن أعطيت كتلة برمجية، فسيُمرَّر إليها كائن الصنف (class object)، وستقدَّر الكتلة في سياق ذلك الصنف كما هو الحال مع class_eval.

عيِّن الصنف وأعطه قيمة ثابتة (يبدأ الاسم بأحرف كبيرة) إذا كنت تريد معاملته كصنف اعتيادي.

البنية العامة

 new(super_class=Object)  a_class
new(super_class=Object) { |mod| ... }  a_class

القيم المعادة

يعاد صنف.

أمثلة

مثال على استخدام التابع new:

 fred = Class.new do
 def meth1
   "hello"
 end
 def meth2
   "bye"
 end
end

a = fred.new     #=> #<#<Class:0x100381890>:0x100376b98>
a.meth1          #=> "hello"
a.meth2          #=> "bye"

انظر أيضًا

  • التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class دون استدعاء التابع initialize مع النسخة (instance) الجديدة.
  • التابع inherited: يُستدعَى كرد نداء في كل مرة يُنشأ فيها صنف فرعي (subclass) من الصنف الحالي.
  • التابع new: يستدعي التابعَ allocate لإنشاء كائن جديد من الصنف class، ثم يستدعي التابع initialize مع ذلك الكائن المنشأ ويُمرِّر إليه وسائط محددة.
  • التابع superclass: يعيد الصنف الأب ( superclass) للصنف المستدعى معه.

مصادر