نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

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

يُطلق الاستثناء NameError عندما يكون الاسم المعطى غير صالح أو غير مُعرّف. انظر إلى السطر البرمجي التالي: puts foo سيُطلق عند تنفيذه الاستثناء التالي: NameError: undefined local variable or method `foo' for main:Object أسماء الثوابت يجب أن تبدأ بحرف كبير، لذلك فالشيفرة البرمجية التالي: Integer.const_set :answer, 42 ستطلق الاستثناء NameError: NameError: wrong constant name answer توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً جديدًا من النوع NameError. توابع النسخة العامة (Public Instance Methods) local_variables يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق ...

التابع NameError.name‎ في روبي

يعيد التابع name الاسم المقترن بالاستثناء NameError الحالي. البنية العامة name → string or nil‎ القيمة المعادة تعاد سلسلة نصية تمثِّل الاسم المقترن بالاستثناء NameError الحالي. انظر أيضا التابع local_variables: يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق الخطأ NameError. التابع receiver: يعيد المستقبل (receiver) المقترن بالاستثناء NameError الحالي. مصادر قسم التابع name‎ في الصنف NameError‎ في توثيق روبي الرسمي.

التابع NameError.local_variables‎ في روبي

يعيد التابع local_variables قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلِق الاستثناء NameError. هذا التابع مخصص للإستخدام الداخلي فقط. البنية العامة local_variables → array‎ القيمة المعادة تعاد مصفوفة تحوي أسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق الاستثناء NameError. انظر أيضا التابع new: ينشئ استثناءً جديدًا من النوع NameError. التابع name: يعيد الاسم المقترن بالاستثناء NameError الحالي. مصادر قسم التابع local_variables‎ في الصنف NameError‎ في توثيق روبي الرسمي.

التابع NameError.new‎ في روبي

ينشئ التابع new استثناءً جديدًا من النوع NameError. في حال تمرير اسم إليه، فيمكن لاحقًا التحقق منه باستخدام التابع name. البنية العامة new([msg, *, name]) → name_error‎ المعاملات msg‎ رسالة الخطأ. name‎ في حال تمرير هذا الاسم، فيمكن لاحقًا التحقق منه باستخدام التابع name. القيمة المعادة يعاد كائنٌ جديدٌ من النوع NameError. انظر أيضا التابع name: يعيد الاسم المقترن بالاستثناء NameError الحالي. التابع local_variables: يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلِق الاستثناء NameError. مصادر قسم التابع new‎ في الصنف NameError‎ في ...

التابع NameError.receiver‎ في روبي

يعيد التابع receiver المستقبل (receiver) المقترن بالاستثناء NameError الحالي. البنية العامة receiver → object‎ القيمة المعادة يعاد المستقبل (receiver) المقترن بالاستثناء NameError الحالي. انظر أيضا التابع name: يعيد الاسم المقترن بالاستثناء NameError الحالي. مصادر قسم التابع receiver‎ في الصنف NameError‎ في توثيق روبي الرسمي.

التابع Module.const_get‎ في روبي

يتحقق التابع const_get من وجود ثابت باسم محدد في الوحدة التي استُدعي معها. في حال تعيين المعامل inherit، فسيشمل البحث الأسلاف أيضًا (وكذلك Object إن كانت الوحدة من النوع Module). تُعاد قيمة الثابت إذا عُثر على تعريف له؛ خلا ذلك، سيُطلق الخطأ NameError. Math.const_get(:PI) #=> 3.14159265358979 سيبحث التابع const_get بشكل تكراري (recursively) عن أسماء الثوابت إذا تم توفير اسم صنف من مجال أسماء (namespaced class name). اطلع مثلًا على المثال التالي: module Foo; class Bar; end end Object.const_get 'Foo::Bar' تؤخذ الراية inherit بالحسبان ...

معالجة الاستثناءات في روبي

يتمّ التعامل مع الاستثناءات بعد الكلمة rescue في الكتلة begin/end: begin  # الشيفرة التي قد تسبب ظهور استثناء برمجي rescue  # معالجة الاستثناء end  إذا كنت ضمن تابع، فلست بحاجة لاستخدام begin و end إلا إذا كنت ترغب بحدّ النّطاق الخاص بالاستثناء الذي ترغب بمعالجته: def my_method  # ... rescue  # ... end نفس الأمر يطبّق في الأصناف (classes) والوحدات (modules). يمكنك إسناد استثناء إلى متغيّر محليّ باستخدام الرمز ‎=>‎ متبوعًا باسم المتغيّر، وذلك في نهاية السطر الخاص بالكلمة rescue: begin  # ... rescue => exception  warn exception.message  raise # كرر ظهور ...

التابع Module.const_set‎ في روبي

يضبط التابع const_set قيمة ثابت محدَّد إلى قيمة الكائن المعطى ثم يعيد ذلك الكائن. في حال لم يكن هناك ثابت يحمل الاسم المعطى، فسيُنشئ ثابت جديد ويسند إلى تلك القيمة. البنية العامة const_set(sym, obj) → obj const_set(str, obj) → obj‎ المعاملات sym‎ رمز يمثل الثابت. إذا لم يكن المعامل sym اسم ثابت صالح، فسيُطلق الخطأ NameError مع التحذير "wrong constant name". obj‎ الكائن المراد ضبط قيمته إلى الثابت. str‎ سلسلة نصية تمثل الثابتة. إذا لم يكن المعامل str‎ اسم ثابت صالح، فسيُطلق ...

التابع Object.method في روبي

يبحث التابع method عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver)، ثمَّ يعيد كائنًا من النوع Method لذلك التابع (أو يرمي الاستثناء NameError). يتصرَّف الكائن Method كتعبيرٍ مغلق (closure) في نسخ الكائن الخاصة بالكائن الذي يبحث فيه؛ لذلك، تبقى متغيِّرات النسخة (instance variables) وقيمة self متاحةً. البنية العامة method(sym) → method المعاملات sym رمزٌ يشير إلى اسم التابع المراد البحث عنه. القيم المعادة يُعاد كائنًا من النوع Method يمثِّل التابع الموافق للاسم sym الموجود في الكائن المعطى، أو ...

التابع ‎Module.const_defined?‎‎ في روبي

يتحقق التابع const_defined?‎ مما إذا كانت الوحدة التي استُدعي معها أو أحد أسلافها (ancestors) تحوي الثابت المعطى. Float.const_defined?(:EPSILON) #=> true, found in Float itself Float.const_defined?("String") #=> true, found in Object (ancestor) BasicObject.const_defined?(:Hash) #=> false إذا كانت الوحدة من النوع Module، فسيتم إضافة إلى ذلك فحص Object وكذلك أسلافه. Math.const_defined?(:String) #=> true, found in Object في كل الأصناف أو الوحدات المفحوصة، إذا لم يكن الثابت موجودًا وكان التحميل التلقائي (autoload) مفعلًا له، ...

التابع Object.public_method في روبي

يبحث التابع public_method عن التوابع العامة فقط بشكل مشابه لعمل التابع method. البنية العامة public_method(sym) → method المعاملات sym رمزٌ يشير إلى اسم التابع المراد البحث عنه. القيم المعادة يُعاد التابع الموافق للاسم sym من الكائن المُعطى، أو يُرمى الاستثناء NameError إذا لم توجد توابع موافقة لهذا الاسم. انظر أيضًا التابع method: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا. التابع public_send: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. التابع send: يَستدعي التابع ...

التابع Binding.local_variable_get في روبي

يعيد التابعlocal_variable_get ‎ قيمة المتغير المحلي الممرَّر إليه. هذا التابع هو النسخة المختصرة للشيفرة التالية: binding. eval("#{symbol}") البنية العامة local_variable_get(symbol) → obj المعاملات symbol المتغير المحلي المراد معرفة قيمته. القيم المعادة يعاد كائن يمثل قيمة المتغير المحدد في المعامل symbol. أمثلة مثال لاستخدام التابعlocal_variable_get ‎: def foo a = 1 binding.local_variable_get(:a) #=> 1 binding.local_variable_get(:b) #=> NameError end انظر أيضًا التابع eval: يقدر تعابير لغة روبي الممررة إليه في السياق Binding. التابع local_variables: يعيد أسماء المتغيرات المحلية المعرفة في Binding على شكل ...

التابع Binding.local_variable_get في روبي

يعيد التابعlocal_variable_get ‎ قيمة المتغير المحلي الممرَّر إليه. هذا التابع هو النسخة المختصرة للشيفرة التالية: binding. eval("#{symbol}") البنية العامة local_variable_get(symbol) → obj المعاملات symbol المتغير المحلي المراد معرفة قيمته. القيم المعادة يعاد كائن يمثل قيمة المتغير المحدد في المعامل symbol. أمثلة مثال لاستخدام التابعlocal_variable_get ‎: def foo a = 1 binding.local_variable_get(:a) #=> 1 binding.local_variable_get(:b) #=> NameError end انظر أيضًا التابع eval: يقدر تعابير لغة روبي الممررة إليه في السياق Binding. التابع local_variables: يعيد أسماء المتغيرات المحلية المعرفة في Binding على شكل ...

التابع Module.class_variable_get‎ في روبي

يعيد التابع class_variable_get قيمة متغير الصنف المعطى (أو يطلق الاستثناء NameError). يجب تضمين الجزء @@ من اسم المتغير بالنسبة لمتغيرات الصنف العادية. تُحوّل المعاملات النصية إلى رموز. البنية العامة class_variable_get(symbol) → obj class_variable_get(string) → obj‎ المعاملات symbol‎ رمز يمثل متغير الصنف. string‎ سلسلة نصية تمثل متغير الصنف. القيمة المعادة تعاد قيمة متغير الصنف المعطى. أمثلة مثال على استخدام التابع class_variable_get‎: class Fred @@foo = 99 end Fred.class_variable_get(:@@foo) #=> 99‎ انظر أيضا التابع class_variable_defined?‎: يتحقق إن كان متغير الصنف (class variable) ...

التابع Module.‎class_variable_defined?‎‎ في روبي

يتحقق التابع class_variable_defined?‎ إن كان متغير الصنف (class variable) المعطى مٌعرّفا في الكائن الذي استُدعي معه. تُحوّل المعاملات النصية إلى رموز. البنية العامة class_variable_defined?(symbol) → true or false class_variable_defined?(string) → true or false‎ المعاملات symbol‎ رمز يمثل متغير الصنف. string‎ سلسلة نصية تمثل متغير الصنف. القيمة المعادة تعاد القيمة true إن كان متغير الصنف المعطى مٌعرّفا في الكائن المعطى، وإلا فستُعاد false. أمثلة مثال على استخدام التابع class_variable_defined?‎: class Fred @@foo = 99 end Fred.class_variable_get(:@@foo) #=> 99 انظر ...

التابع Object.singleton_method في روبي

يبحث التابع singleton_method في التوابع المنفردة فقط بطريقة مشابهة للتابع method. البنية العامة singleton_method(sym) → method المعاملات sym الرمز المعرِّف للتابع المنفرد. القيم المعادة يُعاد التابع الموافق للرمز sym المُعطى. أمثلة مثالٌ عن استخدام التابع singleton_method: class Demo def initialize(n) @iv = n end def hello() "Hello, @iv = #{@iv}" end end k = Demo.new(99) def k.hi "Hi, @iv = #{@iv}" end m = k.singleton_method(:hi) m.call #=> "Hi, @iv = 99" m = k.singleton_method(:hello) ...

التابع Module.class_variables‎ في روبي

يعيد التابع class_variables مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة التي استُدعي معها. يشمل ذلك أسماء متغيرات الصنف في كل الوحدات المُضمّنة ما لم تمرَّر القيمة false إلى التابع. البنية العامة class_variables(inherit=true) → array‎ المعاملات inherit‎ قيمة منطقية تحدِّد ما إذا كانت أسماء متغيرات الصنف في كل الوحدات المُضمّنة ستُشمل أم لا. القيمة المعادة تعاد مصفوفة مكونة من أسماء متغيرات الصنف في الوحدة التي استُدعي معها. أمثلة مثال على استخدام التابع class_variables‎: class One @@var1 = 1 end class Two < ...

التابع Module.class_variable_set‎ في روبي

يضبط التابع class_variable_set قيمة متغير الصنف المحدد بالمعامل المُمرَّر ويحيل إليه قيمة محدَّدة. إذا تم تمرير اسم متغير الصنف كسلسلة نصية، فستُحوّل تلك السلسلة إلى رمز. البنية العامة class_variable_set(symbol, obj) → obj class_variable_set(string, obj) → obj‎ المعاملات symbol‎ رمز يمثل متغير الصنف. obj‎ قيمة الكائن المراد تعيينها إلى متغير الصنف. string‎ سلسلة نصية تمثل متغير الصنف. القيمة المعادة يعاد الكائن obj‎ المعطى. أمثلة مثال على استخدام التابع class_variable_set‎: class Fred @@foo = 99 def foo @@foo ...

المعامل ‎[]=‎‎ الخاص بالصنف Struct في روبي

يضبط المعامل [] عند استدعائه بالشكل struct[member/index] = obj قيمة عضو البنية member المعطى أو العضو الموجود عند الفهرس index إلى القيمة obj. يطلق الاستثناء NameError إن كان member غير موجود، أو الاستثناء IndexError إن كان index خارج النطاق. البنية العامة struct[member] = obj → obj struct[index] = obj → obj‎ المعاملات member اسم العضو المراد تعيين قيمته. index فهرس العضو المراد تعيين قيمته. القيمة المعادة تعاد القيمة obj المُعيّنة. أمثلة مثال على استخدام المعامل ‎[]=‎: Customer = Struct.new(:name, :address, ...

التابع Object.instance_variable_get في روبي

يجلب التابع instance_variable_get قيمة مُتغيِّر النسخة (instance variable) المُمرَّر إليه من الكائن المعطى، أو يُعيد قيمةً عدميّةً nil إذا كان المتغيِّر غير معيَّن في ذلك الكائن. يجب أن يحتوي اسم المُتغيِّر على الرمز @ في حال كان من متغيرات النسخة النظامية (regular instance variables). يُرمى الاستثناء NameError إذا كان الرَّمز المُعطى غير معرَّفٍ على أنَّه اسمٌ لمتغيِّر نسخة. تُحوَّل الوسائط النّصية المُمرَّرة إلى التابع إلى رموز. البنية العامة instance_variable_get(symbol) → obj instance_variable_get(string) → obj المعاملات symbol الرمزُ المراد جلب قيمته في ...

التابع Binding.local_variable_set في روبي

يضبط التابع local_variable_set‎ قيمة المتغير المحلي الممرر إليه إلى قيمة معينة. سلوك هذا التابع مشابه للشيفرة التالية في حال كان بالإمكان إهمال الكائن obj من شيفرة روبي: binding. eval("#{symbol} = #{obj}") البنية العامة local_variable_set(symbol, obj) → obj المعاملات symbol المتغير المحلي المراد ضبط قيمته إلى قيمة المعامل obj. إن كان المتغير المحلي المعطى موجودًا، فستُستبدَل قيمته. أما إن لم يكن موجودًا، فسينشأ وتضبط قيمته أيضًا إلى قيمة المعامل obj. obj الكائن الذي ستسند قيمته إلى قيمة المتغير المحلي المحدد ...

التابع Binding.local_variable_set في روبي

يضبط التابع local_variable_set‎ قيمة المتغير المحلي الممرر إليه إلى قيمة معينة. سلوك هذا التابع مشابه للشيفرة التالية في حال كان بالإمكان إهمال الكائن obj من شيفرة روبي: binding. eval("#{symbol} = #{obj}") البنية العامة local_variable_set(symbol, obj) → obj المعاملات symbol المتغير المحلي المراد ضبط قيمته إلى قيمة المعامل obj. إن كان المتغير المحلي المعطى موجودًا، فستُستبدَل قيمته. أما إن لم يكن موجودًا، فسينشأ وتضبط قيمته أيضًا إلى قيمة المعامل obj. obj الكائن الذي ستسند قيمته إلى قيمة المتغير المحلي المحدد ...

المعامل []‎ الخاص بالصنف Struct في روبي

يجلب المعامل [] قيمة عضو البنية المعطى، أو قيمة العضو ذي الفهرس المحدَّد. البنية العامة struct[member]→ object struct[index] → object‎ المعاملات member اسم العضو المراد جلب قيمته. index فهرس العضو المراد جلب قيمته. القيمة المعادة تعاد قيمة عضو البنية member المعطى، أو العضو ذو الفهرس index. يطلق الاستثناء NameError إن لم يكن member موجودًا، أو الاستثناء IndexError إن كان index خارج النطاق. أمثلة مثال على استخدام المعامل []‎: Customer = Struct.new(:name, :address, :zip) joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345) joe["name"] ...

الاستثناءات في بايثون

قد تكون التعابير البرمجية في الشيفرة صحيحة من ناحية الصيغة، لكن قد يؤدي تنفيذ تلك الشيفرة إلى التسبب في حدوث الأخطاء. تسمّى الأخطاء المُكتشفة أثناء تنفيذ الشيفرة بالاستثناءات (exceptions) وقد تتسبب في إيقاف عمل البرنامج (fatal) في بعض الأحيان. صيغة الاستثناءات تُنشئ الاستثناءات رسائل خطإٍ مماثلة لما يلي: >>> 10 * (1/0) Traceback (most recent call last):   File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>> 4 + spam*3 Traceback (most recent call last):   File "<stdin>", line 1, in <module> NameError: name 'spam' ...

الوحدات والأصناف في روبي

الوحدات تخدم الوحدات (Modules) غايتين اثنتين في لغة روبي وهما: ميّزة نطاقات الأسماء (namespace)، والخلط الضمني (mix-in) التي سنوضّحها لاحقًا. يستخدم نطاق الأسماء لتنظيم الشيفرة البرمجية ضمن مجموعات مستقلّة تمنع تداخل التوابع والمتغيّرات ذات الأسماء المتشابهة فيما بينها. فعلى سبيل المثال، نطاق الأسماء IRB يوفّر عمليات irb والتي تمنع التصادم مع الاسم الشائع "Context". وظيفة الخلط الضمني (Mix-in) تسمح بمشاركة توابع مشتركة عبر عدد من الأصناف أو الوحدات، إذ يأتي مع لغة روبي على سبيل المثال الوحدة Enumerable التي توفّر ...

الإسناد في روبي

لكي نسند شيئًا في لغة روبي، نستخدم رمز المساواة =؛ ففي المثال التّالي، يُسنَد العدد 5 إلى المتغيّر v المحلّي: v = 5 فالإسناد يُنشئ متغيّرًا محلّيًا جديدًا إذا لم يكن قد عُرِّفَ من قبل. أسماء المتغيرات المحلية اسم المتغيّر المحلّي يجب أن يبدأ بحرف صغير من مجموعة المحارف US-ASCII أو من مجموعة المحارف التي تُمثَّل باستخدام ثمان بتات ثنائيّة. وبشكلٍ عام، فإنّ أسماء المتغيّرات المحلّية متوافقة مع US-ASCII كون الأزرار التي تستخدم لكتابتها موجودة في جميع لوحات المفاتيح. عمومًا، جميع ...

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

تُستخدَم الكائنات السليلة من الصنف Exception للتواصل بين التّابع Kernel.raise وتصريحات rescue في الكتل (blocks) من الشكل begin...end. تَحمل كائنات الصنف Exception معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية. قد تضيف الأصناف الفرعية من الصنف Exception معلوماتٍ إضافيّةٍ مثل NameError.name. قد تُنشِئ البرامج أصنافًا فرعيّةً (subclasses) من الصنف Exception، تكون عادةً StandardError أو RuntimeError، لتوفير أصنافٍ مخصصّةٍ وإضافة معلوماتٍ إضافية. ألقِ نظرةً على قائمة الأصناف الفرعية في الأسفل من أجل قيم ...

التحميل التلقائي وإعادة تحميل الثوابت في ريلز

يوثق هذا الدليل طريقة عمل التحميل التلقائي وإعادة تحميل الثوابت. بعد قراءة هذا الدليل، ستتعلم: الجوانب الرئيسية لثوابت لغة روبي. ماهية autoload_paths وكيفية عمل التحميل الحثيث (eager loading) في الإنتاج. كيفية عمل التحميل التلقائي للثابت. ماهية need_dependency. كيفية عمل إعادة التحميل للثابت. حلول للتحميل التلقائي المشترك. المقدمة تسمح لغة ريلز بكتابة تطبيقات كما لو حملت الشيفرة الخاص بها مسبقًا. في أصناف برنامج روبي عادي، تحتاج إلى تحميل جميع اعتماديته (dependencies): require 'application_controller' require 'post' class PostsController < ApplicationController def index ...

Python/Examples

هذه الصفحة هي تجميع منظم ومرتب لأمثلة بلغة بايثون الاستثناءات تحتوي هذه الفقرة على أمثلة يصدر فيها استثناءات. الاستثناء FileNotFoundError تُصدره بعض التوابع القارئة للملفات عند عدم وجود الملف >>> f=open('D:\\file.txt') Traceback (most recent call last): File "<pyshell#123>", line 1, in <module> f=open('D:\\file.txt') FileNotFoundError: [Errno 2] No such file or directory: 'D:\\file.txt' الاستثناء KeyError  يصدر عند محاولة الوصول إلى عنصر عن طريق مفتاح غير موجود في القاموس >>> a=dict() >>> a["test"]="good" >>> print(a["no key"]) Traceback ...

تعابير التحكم في روبي

لدى لغة روبي العديد من الطرق للتحكم في مسار تنفيذ البرنامج، وكل البنى المذكورة هنا تعيد قيمةً. في الاختبارات الشرطيّة في بنى التحكّم، تعدّ القيمة nil و false على أنّها قيم خطأ، بينما تُعدُّ القيمة true وأيّ كائن آخر على أنه قيم صحيحة. وفي هذا التوثيق، سنستخدم true للتعبير عن القيم الصحيحة و false للتعبير عن القيم الخطأ. بنية If الشرطية أبسط أشكال بنية if الشرطيّة يحتوي على جزأين، الاختبار الشّرطي، والجزء التّنفيذي then. هذه بنية if بسيطة: if true ...

Ruby/Topics

تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...

أساسيات إنشاء الإضافات في ريلز

تُعدّ الإضافات في ريلز امتدادًا أو تعديلًا للإطار الأساسي. توفر الإضافات: وسيلة لمطورين لمشاركة الأفكار المتطورة دون الإضرار بقاعدة الشيفرات الثابتة. بنية مجزأة بحيث يمكن إصلاح أو تحديث وحدات الشيفرة وفقًا لجدول إصدارها الخاص. منفذ للمطورين الأساسيين حتى لا يضطروا إلى تضمين كل ميزة جديدة بصريح العبارة. بعد قراءة هذا الدليل، ستتعلم: كيفية إنشاء الإضافات من الصفر. كيفية كتابة وتشغيل الإختبارات للإضافات. يصف هذا الدليل كيفية إنشاء واختبار إضافة من شأنها: توسيع أصناف روبي الأساسية مثل Hash و String. إضافة ...

استدعاء التوابع في روبي

عندما تستدعي تابعًا، فإنّك تمرّر رسالة لكائن معيّن لأجل تنفيذ مهمّة معيّنة، ويتمّ ذلك في لغة روبي كالتّالي: my_method() لاحظ أنّ استخدام الأقواس المنحنية هنا اختياريّ: my_method المعتمد في هذا التّوثيق أن تُستخدّم الأقواس عند وجود المعامِلات لإزالة الالتباس، إلا في حالة وجود فرق بين وجود الأقواس وحذفها. هذا القسم يغطّي فقط كيفيّة استدعاء التوابع، وستُشرَح كيفيّة تعريف التّوابع في قسم آخر. المستقبِل المستقبِل (Receiver) الافتراضي في لغة روبي هو self وهو الذي يُستخدَم في حال عدم تحديد أيّ مستقبل آخر. ولأجل ...

التعابير البرمجية في روبي

تنشئ التعابير البرمجية في لغة روبي كائنات يمكنك استخدامها في برنامجك؛ هذه التعابير تتضمّن: القيم المنطقيّة و القيمة nil الأعداد السلاسل النصية الرموز المصفوفات جداول Hash المجالات التعابير النظامية بنى Proc القيم المنطقيّة و القيمة nil إنّ كلًا من nil و false تعبّران عن القيمة المنطقيّة الخطأ (false value). تُستخدم nil أحيانًا لتعبّر عن عدم وجود أيّة قيمة أو قيمة مجهولة، لكنّها تساوي false في العبارات الشرطيّة. أمّا true فهي القيمة المنطقيّة الصحيحة (true value)، وكلّ الكائنات عدا nil و ...

الدالة dir()‎ في بايثون

تستخدم الدالة الداخلية dir()‎ لمعرفة الأسماء التي تعرّفها الوحدة، وتعيد هذه الدالة قائمة مرتّبة من السلاسل النصية: >>> import fibo, sys >>> dir(fibo) ['__name__', 'fib', 'fib2'] >>> dir(sys) ['__displayhook__', '__doc__', '__excepthook__', '__loader__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_getframe', '_home', '_mercurial', '_xoptions', 'abiflags', 'api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getobjects', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettotalrefcount', 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'maxsize', ...

التحسينات في روبي

إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...

التوابع في روبي

تتضمّن التوابع في لغة روبي الوظائف التي يقوم بها برنامجك. إليك هذا المثال لتعريف تابع بسيط: def one_plus_one  1 + 1 end  تعريف التابع يتكوّن من الكلمة المحجوزة def يتبعها اسم التابع، ثمّ جسم التابع، فالقيمة المعادة وفي النهاية الكلمة المحجوزة end. فعند تنفيذ التابع في المثال السابق، ستُعاد القيمة 2. هذا القسم سيغطّي تعريف التّوابع. ارجع إلى توثيق استدعاء التوابع لتتعرف على الصيغ المستخدمة لذلك الغرض. تسمية التوابع يمكن أن تستخدم لاسم التابع أحد المعاملات، وإلا فعليك أن تبتدئه بحرف أبجديّ أو ...

الاستثناءات المضمنة داخليًا في بايثون

يجب أن تكون جميع الاستثناءات في لغة بايثون مُنشأة من صنف مُشتق من الصنف BaseException. عند ذكر صنف مُحدد في جملة except خلال تعبير try، فإن جملة except تُعالج أي استثناء مُشتق من ذلك الصنف المُحدَّد (وليس الاستثناءات المُشتقة من الصنف الذي اُشتقت منه). إذا كان لدينا صنفا استثناءات غير مرتبطين بعلاقة وراثة فهما غير متماثلان حتى لو كانا بنفس الاسم. من الممكن توليد الاستثناءات الداخلية المذكورة بالأسفل بواسطة مُفسر بايثون أو الدوال الداخلية.  تملك الاستثناءات "قيمة مرتبطة" تُشير بالتفصيل ...

تثبيت روبي على مختلف المنصات

توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...

معلومات إضافية عن روبي

هل تساءلت يومًا لماذا روبي مشهورة إلى هذا الحد؟ يقول المعجبون بها أنَّها لغة جميلة وذات بنية متقنة. ويقولون أيضًا أنَّها لغة عملية وسهلة الاستعمال. فماذا تعطي وبماذا تتمتع؟ مثالية منشئ لغة روبي حققت لغة روبي توازنًا دقيقًا بين لغات البرمجة. عمل منشئ هذا اللغة - الياباني Yukihiro “Matz” Matsumoto - على دمج أجزاءٍ من لغات البرمجة المفضلة لديه (Perl، و Smalltalk، و Eiffel، و Ada، و Lisp) لإنشاء لغة جديدة تحقق التوازن بين البرمجة الوظيفية (functional programming) والبرمجة الأمرية ...

التابع Object.instance_variable_set في روبي

يُعيِّن التابع instance_variable_set قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى؛ هذا يؤدي إلى إحباط جهود منشئ الصنف في محاولة توفير التغليف (encapsulation) المناسب. ليس من الضروري أن يتواجد المتغيِّر قبل استدعاء هذا التابع. إذا مُرِّر اسم متغيِّر النسخة بشكل سلسلةٍ نصيةٍ (string)، فستُحوَّل تلك السلسلة إلى رمز. البنية العامة instance_variable_set(symbol, obj) → obj instance_variable_set(string, obj) → obj المعاملات symbol الرمزُ الذي يشير إلى اسم متغيِّر النسخة المراد تعيين قيمة المعامل obj إليه في الكائن المُعطى. string ...

التابع String.sub في روبي

يعيد التابع sub نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى. البنية العامة sub(pattern, replacement) → new_str sub(pattern, hash) → new_str sub(pattern) {|match| block } → new_str إن أعطيت كتلة block إلى التابع، فستُمرَّر السلسلة الحالية المتطابقة إليها وستعيَّن قيم متغيرات مثل ‎$1، و ‎$2، و ‎$`‎، و ‎$&‎، و ‎$'‎ بشكل مناسب. ستحل القيم التي تعيدها الكتلة مكان القيمة المتطابقة في كل استدعاء. المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف ...

التابع Numeric.arg‎ في روبي

يعيد التابع arg القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. البنية العامة arg → 0 or float‎ القيمة المُعادة تعاد القيمة 0 إن كانت القيمة المعطاة موجبة، أو pi خلاف ذلك. انظر أيضا التابع angle: يعيد القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. التابع ceil: يعيد أصغر عدد أكبر من أو يساوي العدد المعطى وبدقة محدَّدة. مصادر قسم التابع arg‎ في الصنف Numeric‎ في توثيق روبي الرسمي.

التابع Thread.keys‎ في روبي

يُعيد التابع keys مصفوفة من أسماء المتغيرات محلية الليف (fiber-local variables) على هيئة رموز. البنية العامة keys→ array‎ القيمة المعادة تعاد مصفوفة من أسماء المتغيرات محلية الليف. أمثلة مثال على استخدام التابع keys‎: thr = Thread.new do Thread.current[:cat] = 'meow' Thread.current["dog"] = 'woof' end thr.join #=> #<Thread:0x401b3f10 dead> thr.keys #=> [:dog, :cat]‎ انظر أيضًا التابع key?‎: يتحقق إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable). مصادر قسم التابع keys‎ في الصنف Thread‎ ...

التابع Array.sort!‎ في روبي

يرتب التابع sort!‎ عناصر المصفوفة التي استُدعيت معه. ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل <=> أو باستعمال كتلة برمجية محددة. إن استعملت الكتلة البرمجية block في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر a والعنصر b وتعيد عددًا سالبًا إن كان b أكبر من a، أو العدد 0 إن كانا متساويين، أو عددًا موجبًا إن كان b أصغر من a. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية ...

التابع =Process.uid في روبي

يضبط التابع uid عند استدعائه بالشكل uid= user المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية إلى القيمة user. هذا التابع غير متاح على جميع المنصات. البنية العامة uid= user → numeric القيم المعادة تعاد القيمة user بعد تعيينها إلى المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. أمثلة مثال على استعمال التابع uid: Process.setproctitle('myapp: worker #%d' % worker_id) انظر أيضًا التابع uid: يعيد المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. التابع gid=‎: يضبط عند استدعائه بالشكل gid= integer مُعرِّف المجموعة المالكة للعملية الحالية إلى القيمة ...

التابع ARGF.inspect()‎ في روبي

يعد التابع inspect()‎ اسمًا بديلًا للتابع to_s. انظر أيضًا التابع to_s: يعيد القيمة "ARGF". مصادر قسم التابع ARGF.inspect()‎ في الصنف ARGF في توثيق روبي الرسمي.

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

الصنف Data هو صنف مهمل. كان يعدُّ الصنف الأساس لملحقات C التي تستعمل Data_Make_Struct أو Data_Wrap_Struct. مصادر صفحة الصنف Data في توثيق روبي الرسمي.

التابع InstructionSequence.of‎ في روبي

يُعيد التابع of سلسلة التعليمات التي تحوي الكائن Proc أو Method المعطى. البنية العامة of(p1) أمثلة مثال على استعمال التابع of باستخدام irb: # a proc > p = proc { num = 1 + 2 } > RubyVM::InstructionSequence.of(p) > #=> <RubyVM::InstructionSequence:block in irb_binding@(irb)> # for a method > def foo(bar); puts bar; end > RubyVM::InstructionSequence.of(method(:foo)) > #=> <RubyVM::InstructionSequence:foo@(irb)>‎ أو باستخدام compile_file: # /tmp/iseq_of.rb def hello puts "hello, world" end $a_global_proc = proc { str = 'a' + 'b' } # in irb > require '/tmp/iseq_of.rb' # first the method hello > RubyVM::InstructionSequence.of(method(:hello)) > #=> ...

التابع Float.prev_float في روبي

يعيد التابع prev_float العدد العشري الذي يسبق العدد العشري الذي استُدعي معه. يعيد استدعاء التابع prev_float مع القيمة (‎(-Float::MAX والقيمة (Float::INFINITY-) القيمة الثابتة ‎-Float::INFINITY. ويعيد استدعاء التابع بالشكل Float::NAN.prev_float القيمة Float::NAN. البنية العامة prev_float → float القيمة المعادة يعاد العدد العشري السابق للعدد العشري المعطى. أمثلة مثال على استخدام التابع prev_float: 0.01.prev_float #=> 0.009999999999999998 1.0.prev_float #=> 0.9999999999999999 100.0.prev_float #=> 99.99999999999999 0.01 - 0.01.prev_float #=> 1.734723475976807e-18 1.0 - 1.0.prev_float ...

عرض (50 السابقة | 50 التالية) (20 | 50 | 100 | 250 | 500).