الفرق بين المراجعتين ل"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.

انظر أيضا

مصادر