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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new</code> الخاص بالصنف <code>SyntaxError</code> في روبي}}</noinclude> تصنيف: Ruby تصني...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby SyntaxError]]
[[تصنيف: Ruby SyntaxError]]
يُستخدم الشكلان الأولان (انظر فقرة البنية العامة) لإنشاء صنف فرعي جديد من <code>[[Ruby/Struct|Struct]]</code> يحمل الاسم <code>class_name</code>، والذي يمكن أن يحتوي قيمة مقابل كل وسيط <code>member_name</code>.  يمكن استخدام هذا الصنف الفرعي لإنشاء نسخ من ال[[Ruby/Struct|بنية]] مثل أي صنف آخر.
ينشئ التابع <code>class_name</code> استثناء جديدا من النوع <code>SyntaxError</code>.
 
إذا لم يُعط الوسيط <code>class_name</code>، فستُنشؤ [[Ruby/Struct|بنية]] مجهولة ()anonymous structure. وبخلاف ذلك، سيظهر اسم هذه البنية كثابتة في ال[[Ruby/Struct|بنية]] ، لذلك يجب أن يكون فريدًا في جميع ال[[Ruby/Struct|بني]]ات المٌعرّفة في النظام، ويجب أن يبدأ بحرف كبير. إحالة (Assigning) [[Ruby/Struct|بنية]] إلى ثابت سيؤدي إلى اعتماد ال[[Ruby/Struct|بنية]] اسم الثابت كاسم لها.<syntaxhighlight lang="ruby">
# Create a structure with a name under Struct
Struct.new("Customer", :name, :address)
#=> Struct::Customer
Struct::Customer.new("Dave", "123 Main")
#=> #<struct Struct::Customer name="Dave", address="123 Main">
 
# Create a structure named by its constant
Customer = Struct.new(:name, :address)
#=> Customer
Customer.new("Dave", "123 Main")
#=> #<struct Customer name="Dave", address="123 Main">
</syntaxhighlight>إذا أعطي الوسيط الاختياري <code>keyword_init</code> القيمة <code>true</code>، فسيأخذ التابع <code>new</code> وسائط مسماة (keyword arguments) بدلاً من الوسائط العادية.<syntaxhighlight lang="ruby">
Customer = Struct.new(:name, :address, keyword_init: true)
Customer.new(name: "Dave", address: "123 Main")
#=> #<struct Customer name="Dave", address="123 Main">
</syntaxhighlight>إذا تم إعطاء كتلة، فسيتم تقييمها في سياق البنية، وسيُمرّر إليها الصنف الذي تم إنشاؤه كوسيط: <syntaxhighlight lang="ruby">
Customer = Struct.new(:name, :address) do
  def greeting
    "Hello #{name}!"
  end
end
Customer.new("Dave", "123 Main").greeting  #=> "Hello Dave!"
</syntaxhighlight>هذه هي الطريقة الموصى بها لتخصيص ال[[Ruby/Struct|بنيات]]. حيث تؤدي الأصناف الفرعية أو المجهولة لل[[Ruby/Struct|بنية]] إلى إنشاء أصناف مجهولة إضافية، والتي لن يتم استخدامها.
 
الشكلان الأخيران (انظر فقرة البنية العامة) يُنشئان نسخة جديدة من صنف فرعي لـ<code>[[Ruby/Struct|Struct]]</code>.  يجب أن يكون عدد وسائط <code>value</code> المعطاة أصغر من أو يساوي عدد الخاصيات المعرّفة في ال[[Ruby/Struct|بنية]]. 
 
القيمة الافتراضية للوسائط غير المعينة هي <code>nil</code>. وإن كان عدد الوسائط المُمررة أكثر من عدد الخاصيات فسيُطلق الاستثناء <code>[[Ruby/ArgumentError|ArgumentError]]</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">new([class_name] [, member_name]+)→ StructClass
<syntaxhighlight lang="ruby">new([msg]) → syntax_error</syntaxhighlight>
new([class_name] [, member_name]+, keyword_init: true) → StructClass
new([class_name] [, member_name]+) {|StructClass| block } → StructClass
new(value, ...)  → object
StructClass[value, ...]→ object‎</syntaxhighlight>
==المعاملات==
==المعاملات==
===<code>class_name‎</code>===
===<code>msg</code>===
اسم البنية.
رسالة الاستثناء.
 
===<code>member_name</code>===
اسم العضو.
 
===<code>keyword_init</code>===
إذا أعطي هذا الوسيط  القيمة <code>true</code>، فسيأخذ التابع <code>new</code> وسائط مسماة (keyword arguments) بدلاً من الوسائط العادية.
 
===<code>value‎</code>===
قيمة.


==القيمة المُعادة==
==القيمة المُعادة==
يعيد التابع <code>new</code> [[Ruby/Struct|بنية]] جديدة.
يعيد التابع <code>new</code> كائنا جديدا من النوع <code>SyntaxError</code>.
 
==أمثلة==
مثال على استخدام التابع <code>new‎</code>:
<syntaxhighlight lang="ruby">Customer = Struct.new(:name, :address)
Customer.new("Dave", "123 Main")
#=> #<struct Customer name="Dave", address="123 Main">
Customer["Dave"]
#=> #<struct Customer name="Dave", address=nil></syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* صفحة [[Ruby/Struct|البنيات]].
* صفحة الصنف [[Ruby/SyntaxError|SyntaxError]].
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/SyntaxError.html#method-c-new قسم  التابع new‎ في الصنف SyntaxError في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/SyntaxError.html#method-c-new قسم  التابع new‎ في الصنف SyntaxError في توثيق روبي الرسمي.]

مراجعة 19:19، 4 نوفمبر 2018

ينشئ التابع class_name استثناء جديدا من النوع SyntaxError.

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

new([msg])  syntax_error

المعاملات

msg

رسالة الاستثناء.

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

يعيد التابع new كائنا جديدا من النوع SyntaxError.

انظر أيضا

مصادر