نتائج البحث

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

الصنف Enumerator::Lazy في روبي

الصنف Enumerator::Lazy هو صنف يسمح بعملية التكرار - مثل الصنف Enumerator - ولكن بالنمط الكسول (lazy fashion). توابع الصنف العامة new ينشئ كائن تعداد جديد من النوع Enumerator::Lazy. توابع النسخة العامة chunk chunk_while collect collect_concat يعيد كائن تعداد جديد من النوع Lazy مع النتائج المتسلسلة الناتجة عن تنفيذ الكتلة المعطاة مرةً واحدةً لكل عنصر من عناصر الكائن Lazy الذي استدعي معه. drop drop_while enum_for يشبه التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). find_all flat_map يعيد كائن ...

الأصناف الخاملة (Lazy Classes)

توصيف المشكلة وجود بعض الأصناف (classes) قليلة الاستخدام ولا أهمية لها في البرنامج، ويجدر التخلُّص منها إذ إنّ فهم وصيانة الأصناف يكلِّفان الوقت والجهد. أسبابها يكون تصميم الصنف بدايةً لأداء مهامٍ (functionality) معيّنة، ولكنّه قد يصبح صغيرًا لا أهميّة له من بعد الكثير من عمليات إعادة التصميم (refactoring). قد تُخصَّص بعض الأصناف لدعم التطوير المستقبلي للبرنامج (كالتخطيط المُسبق لميّزاتٍ ستُضاف لاحقًا)، وتصبح تلك الأصناف خاملةً عندما لا يحدث أيُّ تطويرٍ فيما بعد. وما الحل؟ تضمين الأصناف (inline classes) للعناصر (components) ...

التابع Enumerator::Lazy.new في روبي

ينشئ التابع new كائن تعداد جديد من النوع Enumerator::Lazy. عندما يُبدَأ بتعداد (enumerate) المُعدِّد (Enumerator) -عبر استدعاء التابع force مثلًا-، سيُعدَّد الكائن المُمرَّر إلى هذا التابع وستُمرَّر كل قيمة إلى الكتلة المعطاة. يمكن للكتلة أن تعيد القيمة الناتجة باستعمال yielder. البنية العامة new(obj, size=nil) { |yielder, *values| ... } المعاملات obj الكائن المراد تعداده عبر النمط الكسول (lazy). size القيمة الافتراضية هي: nil. أمثلة مثال على استعمال التابع new لإنشاء تابع باسم filter_map في النمط الكسول (lazy) وغير الكسول (non-lazy): module Enumerable ...

التابع Enumerator::Lazy.enum_for في روبي

يشبه التابع enum_for التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator). البنية العامة enum_for(method = :each, *args) → lazy_enum enum_for(method = :each, *args){|*args| block} → lazy_enum المعاملات method تابع. القيمة الافتراضية هي: each:. args الوسائط المُمرَّرة إلى التابع method. القيمة المعادة يعاد مُعدِّدٌ كسولٌ (كائن من النوع Enumerator::Lazy). أمثلة المثال التالي هو تكملة للمثال الموجود في صفحة التابع Kernel.to_enum: # ...

التابع Enumerator::Lazy.to_enum في روبي

يشبه التابع to_enum التابع Kernel.to_enum باستثناء أنه يعيد مُعدِّدًا كسولًا (كائن من النوع Enumerator::Lazy). يجعل هذا من السهل تعريف توابع الصنف Enumerable التي ستبقى كسولة بشكل طبيعي إن استدعيت من مُعدِّد كسول (lazy enumerator). البنية العامة to_enum(method = :each, *args) → lazy_enum to_enum(method = :each, *args) {|*args| block} → lazy_enum المعاملات method تابع. القيمة الافتراضية هي: each:. args الوسائط المُمرَّرة إلى التابع method. القيمة المعادة يعاد مُعدِّدٌ كسولٌ (كائن من النوع Enumerator::Lazy). أمثلة المثال التالي هو تكملة للمثال الموجود في صفحة التابع Kernel.to_enum: ...

التابع Enumerator::Lazy.flat_map في روبي

يعيد التابع flat_map كائن تعداد جديد من النوع Lazy مع النتائج المتسلسلة الناتجة عن تنفيذ الكتلة المعطاة مرةً واحدةً لكل عنصر من عناصر الكائن Lazy الذي استدعي معه. ["foo", "bar"].lazy.flat_map {|i| i.each_char.lazy}.force #=> ["f", "o", "o", "b", "a", "r"] تُحلَّل (decompose) القيمة x المعادة من الكتلة إن تحقق أحد الشرطين التاليين: x تستجيب للتابعين each و force كلاهما، وهذا يعني أن x هي مُعدِّد كسول (lazy enumerator). x هي مصفوفة أو تستجيب للتابع to_ary. خلا ذلك، ستُحتَوى x كما هي في القيمة المعادة. [{a:1}, ...

التابع Enumerator::Lazy.collect_concat في روبي

يعيد التابع collect_concat كائن تعداد جديد من النوع Lazy مع النتائج المتسلسلة الناتجة عن تنفيذ الكتلة المعطاة مرةً واحدةً لكل عنصر من عناصر الكائن Lazy الذي استدعي معه. ["foo", "bar"].lazy.collect_concat {|i| i.each_char.lazy}.force #=> ["f", "o", "o", "b", "a", "r"] تُحلَّل (decompose) القيمة x المعادة من الكتلة إن تحقق أحد الشرطين التاليين: x تستجيب للتابعين each و force كلاهما، وهذا يعني أن x هي مُعدِّد كسول (lazy enumerator). x هي مصفوفة أو تستجيب للتابع to_ary. خلا ذلك، ستُحتَوى x كما هي في القيمة المعادة. [{a:1}, ...

التابع Enumerable.lazy في روبي

يعيد التابع lazy مُعدِّدًا كسولًا (lazy enumerator) تُعدِّد (enumerate) توابعه map/collect، و flat_map/collect_concat، و select/find_all، و rejectK، و grep، و grep_v، و zip، و take، و take_while، و drop، و drop_while القيم بحسب الحاجة. على أي حال، إن أعطيت كتلة لتجميع العناصر المكرَّرة وضغطها (zip)، فستُعدَّد القيم مباشرةً. البنية العامة lazy → lazy_enumerator القيمة المعادة يعاد مُعدِّدٌ كسول (lazy enumerator). أمثلة يوجد البرنامج التالي ثلاثية (مبرهنة) فيثاغورث (pythagorean triples): def pythagorean_triples (1..Float::INFINITY).lazy.flat_map {|z| (1..z).flat_map {|x| ...

التابع Enumerator.new في روبي

ينشئ التابع new كائنًا جديدًا من النوع Enumerator يمكن استعماله ككائن قابل للتعداد (Enumerable). البنية العامة new(size = nil) { |yielder| ... } new(obj, method = :each, *args) في الشكل الأول للتابع، يُعرَّف التكرار عبر الكتلة المعطاة التي يمكن استخدام الكائن yielder - المعطى كمعامل - فيها لإعادة القيمة الناتجة عبر استدعاء التابع yield (أو اسمه البديل +>>+). في الشكل الثاني - المهمل - للتابع، يتكرر مُعدِّدٌ مُولَّد عبر الكائن obj المعطى باستعمال التابع method المعطى مع تمرير الوسائط args إليه. لا يُشجَّع على ...

المخلوط Enumerable في روبي

يوفر المخلوط Enumerable مجموعة من الأصناف مع توابع بحث ونقل (traversal) عديدة قادرة على ترتيب عناصر مجموعة مع بعضها بعضًا. يجب أن يوفر الصنف التابع each الذي يعيد العضو التالي من المجموعة. إن استعمل التابع max، أو mix، أو sort، فيجب أن يُوازَن بين الكائنات في المجموعة باستعمال المعامل <=> الذي تعتمد عليه تلك التوابع في ترتيب عناصر المجموعة الواحدة مع بعضها بعضًا. توابع النسخة العامة all?‎ يتحقق إن كان كل عنصر من عناصر المجموعة التي استدعيت معه محقَّقًا للكتلة ...

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

الصنف Enumerator هو صنفٌ يسمح بتنفيذ عملية التكرار الداخلي والخارجي على الكائنات. يمكن إنشاء كائنات من هذا الصنف باستعمال إحدى التوابع التالية: Kernel.to_enum، أو Kernel.enum_for، أو new. أغلب التوابع في هذا الصنف تملك شكلين هما: الشكل الكتلي (block form) الذي تقيَّم فيه المحتويات لكل عنصر في المجموعة التعدادية، والشكل الغير كتلي (non-block form) الذي يعيد كائنًا جديدًا من النوع Enumerator يغلِّف التكرار. enumerator = %w(one two three).each puts enumerator.class # => Enumerator enumerator.each_with_object("foo") do |item, obj| puts "#{obj}: #{item}" end # foo: one # ...

الدالة withIndex()‎ في Kotlin

تعيد الدالة withIndex()‎ مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل محرف من محارف السلسلة التي استُدعيت معها. البنية العامة fun CharSequence.withIndex(): Iterable<IndexedValue<Char>> القيم المعادة تعاد مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل محرف من محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة ()withIndex مع سلسلة نصية ثم إسناد الناتج الذي تعيده إلى المتغير iter، لاستخدامه في حلقة تكرارية for: fun main(args: Array<String>) { val iter = "hsoub".withIndex() for (x in iter) println(x) // المخرجات ...

الدالة withIndex()‎ في Kotlin

تعيد الدالة withIndex()‎ مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت معها، أو تعيد مُكرّرًا (iterator) يغلّف كل عنصر أنتجه المكرّر (Iterator) المستدعى مع الدالة مع القيمة المُفهرسة أي يعيد القيمة مع فهرسها. البنية العامة يمكن استدعاء الدالة withIndex()‎ مع المصفوفات أو المجموعات التكرارية أو المكرِّرات: fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>> fun ByteArray.withIndex(): Iterable<IndexedValue<Byte>> fun ShortArray.withIndex(): Iterable<IndexedValue<Short>> fun IntArray.withIndex(): Iterable<IndexedValue<Int>> fun LongArray.withIndex(): Iterable<IndexedValue<Long>> fun FloatArray.withIndex(): Iterable<IndexedValue<Float>> fun DoubleArray.withIndex(): Iterable<IndexedValue<Double>> fun BooleanArray.withIndex(): Iterable<IndexedValue<Boolean>> fun ...

الخاصّيّات المُعمَّمة (Delegated Properties) في لغة Kotlin

 استخدام الخاصّيّات المُعمَّمة تستطيع في لغة Kotlin تعريف استخدام (implement) الخاصّيّات يدويًا مرارًا وتكرارًا بكل مرةٍ تحتاجها، ولكن من الأسهل تعريف استخدامها مرةً واحدةً وتخزين هذا التعريف في المكتبة (library) للاستفادة منه كلما دعت الحاجة، وهذا يشمل: الخاصّيّات الكسولة (Lazy property): تُحسب قيمتها مرةً واحدةً فقط وذلك عند الوصول إليها للمرّة الأولى. الخاصّيّات المُراقَبة (observable property): إذ يُستدعَى مسؤول الانتظار (listener) عند حدوث أي تغييرٍ في الخاصّيّة. تخزين الخاصّيّات في map بدلًا من حقلٍ منفصلٍ لكلِّ منها. وتشمل لغة Kotlin ...

Python/linecache/checkcache

التابع linecache.checkcache يتحقق التابع من صلاحية محتوى الكاش بمقارنته بالملفات الأصلية، للتأكد من عدم اختلاف محتوى الملف الحقيقي عن المحتوى الموجود في الكاش، وفي حال وجود الاختلاف فإن محتوى الملف يتم حذفه من الكاش بحيث تُعاد قراءته في المرة القادمة التي يتم فيها استخدام التابع getline. ملاحظة: في حال كون أحد الملفات مقروءًا بطريقة lazycache فإن هذا التابع لا يقوم بالتحقق من تغيره، بل يتركه كسولًا، حيث كُتبت الملاحظة التالية في شيفرة الوحدة linecache if len(entry) == 1: ...

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

يبدأ التابع garbage_collect عملية جمع المهملات (garbage collection)، إلّا إذا عُطِّلت يدويًا. يُعرَّف هذا التابع عبر وسائط الكلمات المفتاحية (keyword arguments) المُعيَّنة افتراضيًا للقيمة true: def GC.start(full_mark: true, immediate_sweep: true); end يمكنك تعيين القيمة false للمعامل full_mark لتنفيذ الوحدة GC الثانوية. ويمكنك تعيين القيمة false للمعامل immediate_sweep لتأجيل الكنس (sweeping، استخدام الكنس الكسول [lazy sweep]). ملاحظة: تعتمد وسائط الكلمات المفتاحية على التطبيق والاصدار المُستخدم من روبي. لا يُضمن أن تبقى متوافقةً مستقبلًا، وقد يتم تجاهلها إذا كان التطبيق الأساسي لا يدعمها. ...

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

تعيد الدّالة enumerate()‎ كائنًا قابلًا للتّكرار من النّوع enumerate. وتُستخدم لترقيم الكائنات القابلة للتّكرار. البنية العامة enumerate(iterable, start=0) المعاملات iterable كائن يدعم التّكرار (iteration)، مثل القوائم، والصّفوف والمولّدات والمكرّرات وغيرها. start العدد الذي سيبدأ منه التّرقيم، القيمة الافتراضيّة هي 0. القيمة المعادة كائن قابل للتّكرار من النّوع enumerate. يكون عبارة عن أزواج، الجزء الأول يكون رقم العنصر، والجزء الثّاني يكون العنصر نفسه. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] # قائمة بايثون ...

Ruby/Topics

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

التعابير الاصطلاحية (Idioms) في لغة Kotlin

تعرِض هذه الصفحة عددًا من التعابير الاصطلاحيّة المستخدَمة بكثرةٍ في لغة Kotlin، ولأيّ اصطلاحٍ جديدٍ لم يُذكَر فيمكنك تعديل هذه الصفحة لإضافته. إنشاء كائنات نقل البيانات DTO:‏ Data Transfer Objects (الكائنات POJO/POCO) ليكن الصنف (class) الآتي باسم Customer: data class Customer(val name: String, val email: String) وله التوابع الوظيفيّة (functional methods) الآتية: توابع getter (وتوابع setter في حالة المتحولات من النوع var) لكافة الخاصّيّات (properties) equals()‎ hashCode()‎ toString()‎ copy()‎ component1()‎ و component2()‎ ...إلخ. وذلك لكافة الخاصّيّات (properties) في الصنف (راجع أصناف البيانات ...

RegExp.prototype.exec()‎

الدالة RegExp.prototype.exec()‎ تجرى بحثًا عن مطابقة للتعبير النمطي في السلسلة النصية المُحدَّدة، وتُعيد مصفوفة النتائج، أو القيمة null. إذا كانتَ تريد تنفيذ البحث لمعرفة إن كانت القيمة موجودةً أم لا فاستخدام الدالة RegExp.prototype.test()‎ أو الدالة String.prototype.search()‎. البنية العامة regexObj.exec(str) str السلسلة النصية التي سنبحث عن مُطابَقة للتعبير النمطي فيها. القيمة المعادة إذا نجحت عملية المطابقة، فستُعيد الدالة exec()‎ مصفوفةً وتُحدِّث خاصيات كائن التعابير النمطية. المصفوفة المعادة ستحتوي على النص المُطابَق في أوّل عنصر فيها، ثم العناصر التي تليه ستحتوي على ...

الدالة wordwrap()‎ في PHP

(PHP 4, PHP 5, PHP 7) تُجري الدالة wordwrap()‎ التفافًا (wrap) للسلسلة النصيَّة الممرَّرة إليها عند عدد محدَّد من المحارف. الوصف string wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = FALSE ]]] ) تؤمِّن هذه الدالة التفاف السلسلة النصيَّة str عند عدد محدَّد من المحارف وباستعمال محرف مخصَّص لفصل تلك السلسلة. المعاملات str السلسلة النصيَّة المراد إجراء التفاف لها. width عدد المحارف التي ستَلتفُّ عندها السلسلة النصيَّة str. break معامل اختياري ...

الدالة preg_replace()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في PHP

(PHP 4, PHP 5, PHP 7) تبحث الدالة preg_replace()‎‎‎ عن تعبير نمطي وتستبدله. الوصف mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) تبحث هذه الدالة في الهدف subject عن النمط المطابق pattern وتبدله إلى replacement. المعاملات pattern النمط المراد البحث عنه. ويمكن أن يكون إما سلسلةً نصيةً أو مصفوفةً من السلاسل النصية. وتتوافر أيضًا العديد من مُعدِّلات PCRE. replacement السلسلة النصية البديلة أو مصفوفة السلاسل النصية البديلة. إذا ...

هدم التسلسل الهرمي (Collapse Hierarchy)

المشكلة في التسلسل الهرمي لصنف، يكون صنفٌ فرعي هو عمليًا نفس صنفه الأب. الحل دمج الصنف الفرعي والصنف الأب. مثال قبل إعادة التصميم الصنف الفرعي Salesman هو عمليًّا نفس الصنف Employee له: الصنفٌ الفرعي هو عمليًا نفس صنفه الأب. بعد إعادة التصميم دمج الصنف الفرعي Salesman في الصنف الأب: دمج الصنف الفرعي والصنف الأب. لم إعادة التصميم؟ قد يؤدي نمو البرنامج مع مرور الوقت إلى أن يصبح كلٌ من الصنف الفرعي والصنف الأب تقريبًا نفس الشيء. فتُزال ميزة من الصنف ...

الأجزاء الفائضة (Dispensables)

وهي الأجزاء عديمة النفع في الشيفرة، وسيجعلُ التخلُّصُ منها الشيفرةَ نظيفةً يسيرة الفهم وأكثر فعاليّة، منها: التعليقات (comments) المشكلة: وجود الكثير من التعليقات في التوابع (methods) بهدف الشرح التفصيليّ للشيفرة. الحل: يكون الحل بناءً على الحالة المستعملة وهو: تقسيم التعبير الواحد إلى تعابيرَ فرعيّة (subexpressions) بالاعتماد على استخراج المتغيِّرات، أو عزل ذلك المقطع في تابعٍ (method) جديدٍ باسمٍ معبِّر، أو إعادة تسمية التابع (rename method) لاسمٍ يشرح ذاته بذاته، أو إضافة التأكيدات. تكرار  الشيفرة (duplicates) المشكلة: التشابه (أو التطابق المطلق) بين مقطعين من الشيفرة ...

التغليف الداخلي للحقول (Self Encapsulate Fields)

ملاحظة قبل البدء: تختلف هذه التقنية عن تقنية تغليف الحقول (Encapsulate Field) من حيث أنّها تُستخدَم لتغليف الحقول الخاصّة (أي المُحدَّدة بالكلمة المفتاحيّة private). المشكلة الوصول المباشر إلى الحقول الخاصّة (private fields) داخل الصنف (class). الحل إنشاء تابعي الوصول getter و setter للحقل الخاصّ ومنع الوصول إليه إلا عبرهما. مثال قبل إعادة التصميم يحتوي الصنف Range على الحقلين low و high من النوع الخاص (private) ونلاحظ الوصول إليهما مباشرةً داخل التابع includes في الشيفرة الآتية: في لغة Java: class Range ...

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

يعيد التابع each_char قيمة قابلة للعد (enumerator) تتكرر (Iterate) على كل قيمة من النوع char في الملفات الموجودة في ARGV. يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة الحرف الأخير من الملف الأول، سيُعاد الحرف الأول من الملف الثاني. يمكن استخدام التابع ARGF.filename لمعرفة اسم الملف الذي ينتمي إليه الحرف الحالي. في حال عدم تمرير كتلة برمجية، فسيُعاد كائن من النوع enumerator. البنية العامة each_char {|char| block } → ...

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

يعيد التابع each_codepoint قيمة قابلة للعد (enumerator) تتكرر (Iterate) على كل قيمة من النوع codepoint في الملفات الموجودة في ARGV. يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة آخر codepoint من الملف الأول، ستعاد أول codepoint من الملف الثاني. يمكن استخدام التابع ARGF.filename لمعرفة اسم الملف الذي ينتمي إليه الحرف الحالي. في حال عدم تمرير كتلة برمجية، فسيُعاد كائن من النوع enumerator. البنية العامة each_char {|char| block } → ...

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

يعيد التابع each_char قيمة قابلة للعد (enumerator) تتكرر (Iterate) على كل قيمة من النوع char في الملفات الموجودة في ARGV. يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة الحرف الأخير من الملف الأول، سيُعاد الحرف الأول من الملف الثاني. يمكن استخدام التابع ARGF.filename لمعرفة اسم الملف الذي ينتمي إليه الحرف الحالي. في حال عدم تمرير كتلة برمجية، فسيُعاد كائن من النوع enumerator. البنية العامة each_char {|char| block } → ...

 التابع ENV.each في روبي

يجلب التابع each‎ أسماء وقيم متغيرات البيئة بالتتابع، ويرسلها فُرادى إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية إلى التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة each { |name, value| } → Hash each → Enumerator each_pair { |name, value| } → Hash each_pair → Enumerator القيمة المعادة يعاد كائن من النوع Hash بعد تمرير اسم وقيمة كل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. ...

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

يعيد التابع each_byte قيمة قابلة للعد (enumerator) تتكرر (iterates) على كل قيمة من النوع Byte في الملفات الموجودة في ARGV. يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة البتة (byte) الأخيرة من الملف الأول، ستُعاد البتة الأولى من الملف الثاني. يمكن استخدام التابع ARGF.filename لمعرفة اسم الملف للبتة الحالية. في حال عدم تمرير كتلة برمجية، فسيُعاد كائن من النوع enumerator. البنية العامة each_byte {|byte| block } → ARGF each_byte → ...

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

يعيد التابع each_byte قيمة قابلة للعد (enumerator) تتكرر (iterates) على كل قيمة من النوع Byte في الملفات الموجودة في ARGV. يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة البتة (byte) الأخيرة من الملف الأول، ستُعاد البتة الأولى من الملف الثاني. يمكن استخدام التابع ARGF.filename لمعرفة اسم الملف للبتة الحالية. في حال عدم تمرير كتلة برمجية، فسيُعاد كائن من النوع enumerator. البنية العامة each_byte {|byte| block } → ARGF each_byte → ...

 التابع ENV.select في روبي

يعيد التابع select‎ نسخة من البيئة (environment) تضم المدخلات التي حقَّقت شرطًا معيَّنًا. في حال عدم تمرير أي كتلة برمجية إلى التابع، فسيعيد كائنًا من النوع enumerator. البنية العامة select { |name, value| } → Hash select → Enumerator القيمة المعادة يُعاد كائن من النوع Hash يحوي نسخة من البيئة تضم المدخلات (entries) التي أعيدت القيمة true معها عند تمريرها إلى الكتلة البرمجية. وفي حال عدم تمرير أية كتلة برمجية، فسيُعاد كائن من النوع enumerator. انظر أيضًا التابع inspect: يعيد محتوى البيئة (environment) ...

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

يعيد التابع ancestors قائمة مكونة الوحدات المُتضمنة/المضافة إلى الوحدة التي استُدعيت معها (بما في ذلك الوحدة نفسها). البنية العامة ancestors → array‎ القيمة المعادة تعاد قائمة مكونة الوحدات المُتضمنة/المضافة إلى الوحدة المعطاة (بما في ذلك الوحدة نفسها). أمثلة مثال على استخدام التابع ancestors‎: module Mod include Math include Comparable prepend Enumerable end Mod.ancestors #=> [Enumerable, Mod, Comparable, Math] Math.ancestors #=> [Math] Enumerable.ancestors #=> [Enumerable]‎ انظر أيضا التابع alias_method: ينشئ اسمًا ...

التابع Enumerable.each_entry في روبي

يستدعي التابع each_entry الكتلة المعطاة مرةً واحدةً على كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه. إن لم تُعطَ الكتلة، فسيُعيد التابع كائنًا من النوع Enumerator. البنية العامة each_entry { |obj| block } → enum each_entry → an_enumerator القيمة المعادة يعاد كائن من النوع Enumerator يحوي نتائج استدعاء الكتلة مرةً واحدةً على كل عنصر من عناصر الكائن القابل للتعداد المعطى، أو يعاد كائنٌ جديد من النوع Enumerator إن لم تُعطَ الكتلة. أمثلة مثال على استعمال التابع each_entry: class Foo include ...

 التابع ENV.keep_if في روبي

يُبقِي التابع keep_if كل متغيرات البيئة التي تحقِّق شرطًا معيَّنًا ويحذف البقية. في حال لم تمرَّر أية كتلة برمجية إلى التابع، فسيعيد كائنًا من النوع enumerator. البنية العامة keep_if { |name, value| } → Hash keep_if → Enumerator القيمة المعادة يعاد كائن من النوع Hash بعد حذف متغيرات البيئة التي أعيدت معها القيمة false عند تمريرها إلى الكتلة المعطاة، أو يعاد كائن من النوع enumerator في حال عدم تمرير أية كتلة. انظر أيضًا التابع clear: يحذف جميع متغيرات البيئة. التابع delete: يحذف متغير ...

 التابع ‎ENV.select!‎ في روبي

التابع select!‎ مكافئ للتابع keep_if لكنه يعيد القيمة nil إن لم يُحدِث أي تغيير في البيئة. في حال عدم تمرير أي كتلة برمجية إلى التابع، فسيعد كائنًا من النوع enumerator. select! { |name, value| } → ENV or nil select! → Enumerator القيمة المعادة يُعاد كائنٌ من الصنف ENV بعد اكتمال تنفيذ العملية أو تُعاد القيمة nil إن لم يحدث أي تغيير، أو يعاد كائنٌ من النوع enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع keep_if: يبقي متغيرات البيئة التي تحقِّق شرطًا ...

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

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع المُمرَّر. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| block*| الكتلة ووسائطها ...

 التابع ENV.each_value في روبي

يجلب التابع each_value‎ قيمة كل متغير من متغيرات البيئة بالتتابع، ويرسلها إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة each_value { |value| } → Hash each_value → Enumerator القيمة المعادة يعاد كائن من النوع Hash بعد تمرير قيمة كل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع each‎ : يجلب أسماء وقيم متغيرات البيئة بالتتابع، ...

 التابع ‎ENV.reject!‎ في روبي

التابع reject!‎ مشابه للتابع delete_if لكنه يعيد القيمة nil إن لم يحدث أي تغيير في البيئة. في حال عدم تمرير أي كتلة برمجية، فسيُعاد كائنٌ من النوع enumerator. reject! { |name, value| } → ENV or nil reject! → Enumerator القيمة المعادة يُعاد كائن من الصنف ENV إن أُعيدت معه القيمة true بعد تمريره إلى الكتلة المعطاة، أو تُعاد القيمة nil إن لم يحدث أي تغيير، أو يُعاد كائنٌ من النوع enumerator في حال عدم تمرير أية كتلة برمجية. انظر أيضًا التابع delete: يحذف متغير بيئة ...

 التابع ENV.each_key في روبي

يجلب التابع each_key‎ أسماء متغيرات البيئة بالتتابع، ويرسلها فُرادَى إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية فسيعيد كائنًا من النوع Enumerator. البنية العامة each_key { |name| } → Hash each_key → Enumerator القيمة المعادة يعاد كائن من النوع Hash بعد تمرير اسم كل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع each‎: يجلب أسماء وقيم متغيرات البيئة بالتتابع، ويرسلها فُرادى إلى ...

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

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع الذي ستُطبَّق عليه العملية. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| ...

 التابع ENV.each_pair في روبي

يجلب التابع each_pair‎ الزوج اسم/قيمة لكل متغير من متغيرات البيئة بالتتابع، ويرسله إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية إلى التابع، فسيُعيد كائنًا من النوع Enumerator. البنية العامة each_pair { |name, value| } → Hash each_pair → Enumerator القيمة المعادة يعاد كائن من النوع Hash بعد تمرير الزوج اسم/قيمة لكل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع each‎: يجلب أسماء ...

اختلال الشيفرات ومشاكلها (Code Smells)

قد تعاني الشيفرات الكثير من الاختلالات والمشاكل الشكلية؛ فبمجرد اكتشاف تلك الاختلالات الظاهرية، يسهل علينا معرفة العلاج (التقنيات) وتطبيقه (إعادة التصميم) للحصول على شيفرة سليمة نظيفة. من هذه الاختلالات: المبالغة والإطالة قد يزداد حجم الشيفرات والتوابع (methods) والأصناف (classes) ازديادًا كبيرًا ليصل لمرحلةٍ يصعُب التعامل معها، ولا يحدث هذا بشكلٍ فجائيِّ دفعةً واحدةً، بل يكون ناتجًا عن تراكم الإضافات أثناء تطوير البرنامج (وخاصةً عندما لا يبذل أحدٌ جهدًا للحدِّ من ذلك التشعب)، ويبدو هذا التضخم واضحًا التوابع الطويلة (long methods): ...

التابع Enumerable.collect_concat في روبي

يعيد التابع collect_concat مصفوفة جديدة مع نتائج متصلة لتنفيذ الكتلة المعطاة مع كل عنصر من عناصر المُعدِّد الذي استدعي معه. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة collect_concat { |obj| block } → array collect_concat → an_enumerator القيمة المعادة تعاد مصفوفة تحوي نتائج تنفيذ الكتلة المعطاة بشكل متصل (concatenated) مع كل عنصر من عناصر المُعدِّد المعطى، أو يعاد كائن من النوع Enumerator إن لم تُعطَ أية كتلة. أمثلة مثال على استعمال التابع collect_concat: [1, 2, 3, 4].collect_concat ...

التابع Enumerator.each_with_object في روبي

يكرر التابع each_with_object الكتلة المعطاة على كل عنصر من عناصر الكائن الذي استدعي معه مع كائن آخر اعتباطي (الكائن المُمرَّر إليه). إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة each_with_object(obj) {|(*args), obj| ... } each_with_object(obj) المعاملات obj الكائن الذي سيُكرَّر مع كل عنصر من عناصر الكائن المعطى. القيمة المعادة يعاد الكائن obj المعطى، أو يعاد كائن جديد من النوع Enumerator إن لم تُعطَ أية كتلة. أمثلة مثال على استعمال التابع each_with_object: to_three = Enumerator.new do |y| ...

التابع Enumerator.size في روبي

يكرِّر التابع with_index الكتلة المعطاة على كل عنصر من عناصر المُعدِّد الذي استدعي معه مع فهارسها والتي تبدأ عند موضع محدَّد. إن لم تُعطَ الكتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator يحوي تلك الفهارس. البنية العامة with_index(offset = 0) {|(*args), idx| ... } with_index(offset = 0) المعاملات offset عدد صحيح يحدِّد فهرس العنصر المراد بدء عملية التكرار عنده. القيمة الافتراضية هي: 0. القيمة المعادة يعاد الناتج الذي تعيده الكتلة بعد تكرارها على كل عنصر من عناصر المُعدِّد المعطى مع فهارسها والتي ...

التابع Enumerator.with_object في روبي

يكرِّر التابع with_object الكتلة المعطاة على كل عنصر من عناصر المُعدِّد الذي استدعي معه مع كائن اعتباطي (الكائن المُمرَّر إليه) ثم يعيد هذا الكائن. إن لم تُعطَ الكتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة with_object(obj) {|(*args), obj| ... } with_object(obj) المعاملات obj الكائن الذي سيُكرَّر مع كل عنصر من عناصر الكائن المعطى. القيمة المعادة يعاد الكائن obj المعطى، أو يعاد كائن جديد من النوع Enumerator إن لم تُعطَ أية كتلة. أمثلة مثال على استعمال التابع with_object: to_three = Enumerator.new do |y| 3.times ...

التابع Enumerable.reverse_each في روبي

ينشئ التابع reverse_each مصفوفة مؤقتة تحوي عناصر الكائن القابل للتعداد ثم يمر عليها (يستعملها) بترتيب معاكس. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة reverse_each(*args) { |item| block } → enum reverse_each(*args) → an_enumerator المعاملات args الوسائط المراد استعمالها في العملية. القيمة المعادة يعاد ناتج تنفيذ الكتلة block على عناصر الكائن القابل للتعداد بترتيب معاكس بعد وضعها في مصفوفة مؤقتة، أو يعاد كائن جديد من النوع Enumerator. أمثلة مثال على استعمال التابع reverse_each: (1..3).reverse_each { |v| p ...

التابع Enumerator.rewind في روبي

يعيد التابع rewind موضع مؤشر السلسلة التعدادية (enumeration sequence) إلى البداية. إن استجاب كائن مغلق (enclosed object) إلى التابع rewind، فسيُستدعَى حينئذٍ. البنية العامة rewind → e القيمة المعادة تعاد e. انظر أيضًا التابع next: يعيد الكائن التالي في المُعدِّد الذي استدعي معه، ويحرك موضع المؤشر الداخلي للأمام خطوة واحدة. التابع peek: يعيد الكائن التالي في المُعدِّد الذي استدعي معه ولكن لا يحرِّك موضع المؤشر الداخلي للأمام.  مصادر قسم التابع rewind في الصنف Enumerator في توثيق روبي الرسمي.

التابع Array.drop_while في روبي

يحذف التابع drop_while عناصر المصفوفة الأولى التي تحقِّق شرطًا محدَّدًا ثمَّ يعيد مصفوفة جديدة تحوي بقية العناصر. إن لم تمرَّر أيَّة كتلة، فسيعيد التابع drop_while كائنًا من النوع Enumerator. البنية العامة drop_while { |obj| block } → new_ary drop_while → Enumerator القيم المعادة تعاد مصفوفة جديدة تحوي جميع عناصر المصفوفة المعطاة باستثناء العناصر الأولى التي تعيد كل منها القيمة true عند تطبيق الكتلة البرمجيَّة block عليها، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة مثالٌ على ...

التابع Array.take_while في روبي

يجلب التابع take_while العناصر الأولى من مصفوفة التي تحقق شرطًا معينًا؛ أي يستمر التابع في جلب العناصر الأولى ما دامت محققة للشرط ويتوقف عندما لا يحقق أحد العناصر ذلك الشرط المعطى. إن لم تمرَّر أية كتلة إلى التابع take_while، فسيعيد كائنًا من النوع Enumerator. البنية العامة take_while { |obj| block } → new_ary take_while → Enumerator القيم المعادة تعاد مصفوفة جديدة تحوي العناصر الأولى التي تعاد معها القيمة true عند تطبيق الكتلة block عليها إلى أن تعاد القيمة false أو القيمة ...

التابع Enumerable.collect في روبي

يعيد التابع collect مصفوفة جديدة تحوي نتائج تنفيذ الكتلة المعطاة دفعةً واحدةً مع كل عنصر من عناصر المُعدِّد الذي استدعي معه. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة collect { |obj| block } → array collect → an_enumerator القيمة المعادة تعاد مصفوفة تحوي نتائج تنفيذ الكتلة المعطاة دفعةً واحدةً مع كل عنصر من عناصر المُعدِّد المعطى، أو يعاد كائن من النوع Enumerator إن لم تُعطَ أية كتلة. أمثلة مثال على استعمال التابع collect: (1..4).map { |i| ...

التابع Enumerable.map في روبي

يعيد التابع map مصفوفة جديدة تحوي النتائج المقابلة لكل عنصر من عناصر الكائن القابل للتعداد المعادة من الكتلة المعطاة بعد تمريره إليها. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة map { |obj| block } → array map → an_enumerator القيمة المعادة تعاد مصفوفة جديدة تحوي النتائج المقابلة لكل عنصر من عناصر الكائن القابل للتعداد المعادة من الكتلة block بعد تمريره إليها. إن لم تُعطَ أية كتلة، فسيعاد كائن من النوع Enumerator. أمثلة مثال على استعمال التابع map: ...

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

يكافئ التابع extended التابع included إلا أنه يُستخدم مع الوحدات الموسعة (extended modules). البنية العامة extended(othermod)‎ المعاملات othermod‎ وحدة من النوع Module. أمثلة مثال على استخدام التابع extended‎: module A def self.extended(mod) puts "#{self} extended in #{mod}" end end module Enumerable extend A end # => prints "A extended in Enumerable"‎ انظر أيضا التابع included: يمثِّل رد نداء يُستدعَى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر. التابع extend_object: يوسع الكائن المعطى بإضافة ثوابت ...

التابع Array.keep_if في روبي

يٌبقِي التابع keep_if على جميع عناصر المصفوفة التي تحقق شرطًا معينًا ويحذف العناصر الأخرى المتبقية. إن لم تمرَّر كتلة برمجية، فسيعيد التابع keep_if كائنًا من النوع Enumerator. البنية العامة keep_if { |item| block } → ary keep_if → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد إزالة جميع العناصر الغير محققة للشرط الذي تحدده الكتلة block، أو يعاد كائن من النوع إن Enumerator إن لم تعطَ الكتلة block. أمثلة مثالٌ على استخدام التابع keep_if: a = %w{ a b c d ...

التابع Enumerable.partition في روبي

يعيد التابع partition مصفوفتين تحتوي الأولى على عناصر الكائن القابل للتعداد المحققة للكتلة المعطاة (التي أعادت عند تمريرها إليها قيمة صحيحة) وتحتوي الأخرى على العناصر المتبقية. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة partition { |obj| block } → [ true_array, false_array ] partition → an_enumerator القيمة المعادة تعاد مصفوفتين تحتوي الأولى على عناصر الكائن القابل للتعداد المحققة للكتلة المعطاة (التي أعادت عند تمريرها إليها قيمة صحيحة) وتحتوي الأخرى على العناصر المتبقية، أو يعاد كائن ...

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

يكافئ التابع prepended التابع included باستثناء أنَّه مخصص للوحدات المُرفقة (prepended modules). البنية العامة prepended(othermod)‎ المعاملات othermod‎ الوحدة الأخرى. أمثلة مثال على استخدام التابع prepended‎: module A def self.prepended(mod) puts "#{self} prepended to #{mod}" end end module Enumerable prepend A end # => prints "A prepended to Enumerable"‎ انظر أيضا التابع prepend_features: يُستدعَى في الوحدة المعطاة عندما تُرفَق هذه الوحدة في أخرى، وتُمرَّر إليها الوحدة المُستقبِلة (receiving module) في الوحدة التي مُمرِّرت إليه.  التابع prepend: يستدعي التابع Module.prepend_features على كل المعاملات ...

 التابع ENV.delete_if في روبي

يحذف التابع delete_if كل متغيرات البيئة التي تحقِّق شرطًا معيَّنًا. البنية العامة delete_if { |name, value| } → Hash delete_if → Enumerator القيمة المعادة يعاد كائنُ من النوع Hash بعد حذف متغيرات البيئة التي أعيدت معها القيمة true عند تمريرها إلى الكتلة block المعطاة، أو يعاد كائنٌ من النوع enumerator في حال عدم تمرير أي الكتلة block. انظر أيضًا التابع clear: يحذف جميع متغيرات البيئة. التابع delete: يحذف متغير بيئة ذي اسم محدَّد، ثم يعيد قيمته. التابع keep_if: يبقي متغيرات البيئة التي تحقِّق شرطًا معيَّنًا ...

التابع Array.each_index في روبي

يستدعي التابع each_index كتلة برمجية محددة مع فهرس كل عنصر من عناصر مصفوفة، إذ يُمرَّر ذلك الفهرس كوسيط إلى الكتلة ثم يعيد المصفوفة نفسها. إن لم تمرَّر أيَّة كتلة إلى التابع each_index، فسيُعيد كائنًا من النوع Enumerator. البنية العامة each_index { |index| block } → ary each_index → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تطبيق الكتلة block على فهرس كل عنصر من عناصرها، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة مثالٌ على استخدام ...

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

يحذف التابع reject!‎ جميع عناصر المصفوفة التي لم تحقق شرطًا محددًا. قد لا تتغيير المصفوفة مباشرةً في كل مرة تستدعى فيها الكتلة block الممرَّرة إلى التابع. إن لم تُمرَّر أية كتلة إلى التابع !reject، فسيعيد كائنًا من النوع Enumerator. البنية العامة reject! { |item| block } → ary or nil reject! → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد حذف عناصرها التي لم تعاد معها القيمة true عند تطبيق الكتلة bloc عليها، أو تعاد القيمة nil إن لم يحذف أي ...

التابع Enumerable.group_by في روبي

يجمِّع التابع group_by عناصر الكائن القابل للتعداد الذي استدعي معه في مجموعات بحسب النتيجة المقابلة لكل عنصر التي تعيدها الكتلة المعطاة بعد تمريره إليها. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة group_by { |obj| block } → a_hash group_by → an_enumerator القيمة المعادة يعاد كائن من النوع Hash تكون قيم المفاتيح فيه هي قيمة العنصر المقابلة التي تعيدها الكتلة block والقيم فيه هي مصفوفات تحوي العناصر المقابلة لكل مفتاح أعادته الكتلة من الكائن القابل للتعداد المعطى. إن ...

التابع Enumerable.select في روبي

يعيد التابع select مصفوفة تحتوي على جميع عناصر الكائن القابل للتعداد الذي استدعي معه باستثناء تلك التي تحقق الكتلة المعطاة (أي التي تعيد معها قيمة صحيحة عند تمريرها إليها). إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة select { |obj| block } → array select → an_enumerator القيمة المعادة تعاد مصفوفة تحتوي على جميع عناصر الكائن القابل للتعداد المعطى باستثناء تلك التي تحقق الكتلة block (أي التي تعيد معها قيمة صحيحة عند تمريرها إليها)، أو يعاد كائن ...

 التابع ENV.reject في روبي

التابع reject مشابه للتابع delete_if لكنه يعمل على نسخة من البيئة وليس البيئة نفسها. البنية العامة reject { |name, value| } → Hash reject → Enumerator القيمة المعادة يعاد كائنُ من النوع Hash يحوي متغيرات البيئة التي أعيدت معها القيمة true عند تمريرها إلى الكتلة block المعطاة، أو يعاد كائن من النوع enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع delete: يحذف متغير بيئة ذي اسم محدَّد، ثم يعيد قيمته. التابع delete_if: يحذف كل متغيرات البيئة التي تحقِّق شرطًا معيَّنًا. التابع !reject: مشابه للتابع delete_if لكنه يعيد ...

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

يُرتِّب التابع sort_by!‎ المصفوفة التي استُدعيت معه وفقًا لمجموعة من المفاتيح (set of keys) المولدة عبر تمرير كل عنصر من عناصر المصفوفة إلى كتلة برمجية مُحددة. لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب عنصري متجاورين لها نفس المفتاح. في حال عدم تمرير كتلة برمجية إلى التابع sort_by!‎، سيعيد كائنًا من النوع Enumerator. البنية العامة sort_by! { |obj| block } → ary sort_by! → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد ترتيب عناصرها وفقًا للقيمة التي تعيدها ...

التابع Enumerable.each_slice في روبي

يكرِّر التابع each_slice الكتلة المعطاة على كل قطعة مكونة من n عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه. إن لم تُعطَ الكتلة، فسيُعيد التابع كائنًا من النوع Enumerator. البنية العامة each_slice(n) { ... } → nil each_slice(n) → an_enumerator المعاملات n عدد العناصر في الشريحة التي ستطبَّق عليها الكتلة المعطاة. القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية، أو يعاد كائنٌ من النوع Enumerator إن لم تُعطَ الكتلة. أمثلة مثال على استعمال التابع each_slice: (1..10).each_slice(3) { |a| p a } # outputs ...

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

يختار التابع !select جميع عناصر المصفوفة المحققة لشرط معين ويحذف العناصر الأخرى المتبقية التي لم تحقق هذا الشرط. قد لا تتغير المصفوفة مباشرةً في كل مرة تُستدعى فيها الكتلة البرمجية الممررة إلى هذا التابع، وستعاد القيمة nil إن لم يجرى أي تعديل على المصفوفة. إن لم تمرَّر أية كتلة إلى التابع !select، فسيعيد كائنًا من النوع Enumerator. البنية العامة select! {|item| block } → ary or nil select! → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد الإبقاء على العناصر التي ...

التابع Enumerable.find_all في روبي

يعيد التابع find_all مصفوفة تحوي جميع العناصر المحققة للكتلة المعطاة (أي التي تعيدها معها قيمة صحيحة [true value]) من عناصر الكائن القابل للتعداد الذي استدعي معه. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة find_all { |obj| block } → array find_all → an_enumerator القيمة المعادة تعاد مصفوفة تحوي جميع العناصر التي أعادت معها الكتلة block قيمةً صحيحةً من عناصر الكائن القابل للتعداد المعطى بعد تمريرها إليها، أو يعاد كائن من النوع Enumerator إن لم تُعطَ أية كتلة. ...

التابع Array.delete_if في روبي

يحذف التابع delete_if جميع عناصر المصفوفة التي تعيد الكتلة البرمجية المعطاة عند تطبيقها على كل عنصر منها القيمة true. يُعدَّل على المصفوفة مباشرةً في كل مرَّة تستدعى فيها الكتلة، وليس بعد انتهاء التكرار (iteration). إن لم تمرَّر أي كتلة إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة delete_if { |item| block } → ary delete_if → Enumerator القيم المعادة تعاد المصفوفة نفسها بعد حذف العناصر التي أعيدت معها القيمة true عند تطبيق الكتلة block على كلٍّ منها، أو ...

المكتبة Active Storage في ريلز

يجعل Active Storage عملية رفع الملفات وإنشاء مرجع لها في أي خدمة سحابية - مثل Amazon S3، أو Google Cloud Storage، أو Microsoft Azure Storage - وربطها بنماذج Active Record عمليةً بسيطةً وسهلةً. يدعم أيضًا امتلاك خدمة تخزين أساسية في خدمة سحابية، وخدمة تخزين انعكاسية (mirror) في خدمات سحابية أخرى وذلك من أجل تحقيق التوافر الدائم. أضف إلى ذلك أنه يوفر خدمة التخزين على قرص صلب (disk service) للفحص أو النشر المحلي ولكن التركيز الأساسي ينصب على التخزين السحابي. يمكن ...

التصريح عن الكائنات (Object Declarations) وتعابيرها (Expressions) في لغة Kotlin

قد تحتاج في بعض الأحيان لإنشاء كائنٍ بإجراء تعديلاتٍ طفيفةٍ على أحد الأصناف (classes) بدون التصريح عن صنفٍ فرعيٍّ (subclass) له؛ تعالج لغة Java مثل هذه الحالات بالاعتماد على الأصناف الداخليّة المجهولة (anonymous inner classes)، وتُعمِّمها لغة Kotlin من خلال طرح مفهوم التصريح عن الكائنات وتعابيرها. تعابير الكائنات (Object Expressions) لإنشاء كائنٍ من صنفٍ مجهولٍ (anonymous) يرِث من نوعٍ أو أكثر تكون الشيفرة بالشكل: window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { ...

التابع Enumerator.each_with_index في روبي

يشبه التابع each_with_index التابع with_index باستثناء أنه لا يوجد إزاحة بادئة لبدء العملية عند قيمة محدَّدة. إن لم تعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator يحوي الفهارس التي كانت الكتلة ستُكرَّر عبرها من الكائن المعطى. البنية العامة each_with_index {|(*args), idx| ... } each_with_index القيمة المعادة يعاد ناتج تكرار الكتلة على فهارس الكائن المُعدِّد المعطى، أو يعاد كائنٌ مُعدِّدٌ جديد إن لم تُعطَ الكتلة. انظر أيضًا التابع each: يتكرر عبر الكتلة المعطاة وفقًا للكائن المُعدِّد الذي استدعي معه والطريقة التي أُنشِئ ...

التابع Struct.each‎ في روبي

يعيد التابع each قيمة كل عضو من أعضاء البنية بالترتيب. وفي حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each {|obj| block } → struct each → enumerator‎ القيمة المعادة تعاد قيمة كل عضو من أعضاء البنية بالترتيب. وفي حال لم تُعطَ أي كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. أمثلة مثال على استخدام التابع each‎: Customer = Struct.new(:name, :address, :zip) joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345) joe.each {|x| puts(x) ...

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

يمثِّل التابع included رد نداء يُستدعَى في كل مرة يتم تضمين المستقبل (receiver) في وحدة أو صنف آخر. يُفضل استخدام هذا التابع على استخدام التابع append_features إن كنت تريد تنفيذ بعض الإجراءات عند تضمين وحدة في أخرى. البنية العامة included(othermod)‎ المعاملات othermod‎ وحدة من النوع Module. أمثلة مثال على استخدام التابع included‎: module A def A.included(mod) puts "#{self} included in #{mod}" end end module Enumerable include A end # => prints "A included in Enumerable"‎ انظر أيضا التابع include?‎: ...

التابع Enumerable.reject في روبي

يعيد التابع reject مصفوفة تحوي جميع عناصر الكائن القابل للتعداد الذي استدعي معه باستثناء تلك التي لم تحقق الكتلة المعطاة (أي التي أعادت معها القيمة false عند تمريرها إليها). إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة reject { |obj| block } → array reject → an_enumerator القيمة المعادة تعاد مصفوفة تحوي جميع عناصر الكائن القابل للتعداد الذي استدعي معه باستثناء تلك التي لم تحقق الكتلة المعطاة (أي التي أعادت معها القيمة false عند تمريرها إليها)، أو ...

التابع Array.find_index في روبي

يجلب التابع find_index فهرس أول ظهور لعنصر محدَّد من مصفوفة أو فهرس أول عنصر يحقق شرطًا محدَّدًا. في حال عدم تمرير أي وسيط أو كتلة برمجية إلى التابع find_index، فسيعيد كائنًا من النوع Enumerator. البنية العامة find_index(obj) → int or nil find_index { |item| block } → int or nil find_index → Enumerator المعاملات obj الكائن المراد جلب فهرسه من المصفوفة المعطاة. القيم المعادة يعاد عددٌ صحيح يمثِّل فهرس أول ظهور للعنصر obj من المصفوفة المعطاة أو فهرس أول عنصر يحقق ...

التابع Enumerable.each_cons في روبي

يُكرِّر التابع each_cons الكتلة المعطاة على كل مصفوفة من n عنصر متتالي من عناصر الكائن القابل للتعداد الذي استدعي معه. إن لم تُعطَ الكتلة، فسيُعيد التابع كائنًا من النوع Enumerator. البنية العامة each_cons(n) { ... } → nil each_cons(n) → an_enumerator المعاملات n عدد العناصر المتعاقبة التي ستُكرَّر الكتلة عليها. القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية، أو يعاد كائنٌ من النوع Enumerator إن لم تُعطَ الكتلة. أمثلة مثال على استعمال التابع each_cons: (1..10).each_cons(3) { |a| p a } # outputs below [1, 2, ...

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

يستدعي التابع !collect كتلة برمجية محددة مع كل عنصر من عناصر مصفوفة ثم يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي استدعيت معه. إن لم يمرَّر أي شيء إلى هذا التابع، فسيعيد كائنا من النوع Enumerator. البنية العامة collect! {|item| block } → ary collect! → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تبديل القيمة الجديدة التي تعيدها الكتلة block عند تطبيقها على كل عنصر من عناصر تلك المصفوفة مكان القيمة القديمة لذلك العنصر، أو يعاد كائنٌ من ...

التابع Array.collect في روبي

يستدعي التابع collect كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يعيد مصفوفة جديدة تحوي القيم التي تعيدها تلك الكتلة. إن لم يمرَّر أي شيء إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة collect { |item| block } → new_ary collect → Enumerator القيم المعادة تعاد مصفوفة جديدة تحوي القيم التي تعيدها الكتلة block عند تطبيقها على كل عنصر من عناصر المصفوفة المعطاة، أو يعاد كائنٌ من النوع Enumeratorإن لم تمرَّر الكتلة block. أمثلة أمثلة على ...

التابع Enumerable.each_with_object في روبي

يكرِّر التابع each_with_object الكتلة المعطاة على كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه مع كائن اعتباطي (الكائن المُمرَّر إليه) ثم يعيد هذا الكائن. إن لم تُعطَ الكتلة، فسيُعيد التابع كائنًا من النوع Enumerator. البنية العامة each_with_object(obj) { |(*args), memo_obj| ... } → obj each_with_object(obj) → an_enumerator المعاملات obj كائن يراد تكرار تنفيذ الكتلة المعطاة عليه مع كل عنصر من عناصر الكائن القابل للتعداد المعطى. القيمة المعادة يعاد الكائن obj المُمرَّر نفسه بعد تنفيذ العملية أو يعاد كائن من النوع Enumerator ...

التابع Array.select في روبي

يحدد التابع select جميع عناصر المصفوفة المحققة لشرط معين ويضعها في مصفوفة جديدة. إن لم تمرَّر أية كتلة إلى التابع select، فسيعيد كائنًا من النوع Enumerator. البنية العامة select { |item| block } → new_ary select → Enumerator القيم المعادة تعاد مصفوفة جديدة تحوي جميع عناصر المصفوفة المعطاة التي أعيدت معها القيمة true عند تطبيق الكتلة block عليها، أو يعاد كائن من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة أمثلة على استخدام التابع select: [1,2,3,4,5].select { |num| num.even? ...

التابع Array.reverse_each في روبي

يشبه التابع reverse_each التابع each تمامًا باستثناء أنَّه يطبق الكتلة البرمجية على العناصر بدءًا من العنصر الأخير وحتى العنصر الأول. إن لم تمرَّر أيَّة كتلة إلى التابع reverse_each، فسيُعيد كائنًا من النوع Enumerator. البنية العامة reverse_each { |item| block } → ary reverse_each → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تطبيق الكتلة block على كل عنصر من عناصرها بدءًا من العنصر الأخير وحتى العنصر الأول، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة أمثلة على ...

التابع Array.each في روبي

يستدعي التابع each كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة، إذ تمرَّر قيمة ذلك العنصر كوسيط إلى الكتلة ثمَّ يعيد المصفوفة نفسها المعطاة. إن لم تمرَّر أيَّة كتلة إلى التابع each، فسيُعيد كائنا من النوع Enumerator. البنية العامة each { |item| block } → ary each → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تطبيق الكتلة block على قيمة كل عنصر من عناصرها، أو يعاد كائنٌ من النوع Enumeratorإن لم تعطَ الكتلة block. أمثلة مثالٌ على استخدام ...

التابع Struct.each_pair‎ في روبي

يعيد التابع each_pair اسم وقيمة كل عضو من أعضاء البنية بالترتيب. وفي حال لم تُعطَ أي كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_pair {|sym, obj| block } → struct each_pair → enumerator‎ القيمة المعادة يعاد اسم وقيمة كل عضو من أعضاء البنية بالترتيب. وفي حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. أمثلة مثال على استخدام التابع each_pair‎: Customer = Struct.new(:name, :address, :zip) joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345) joe.each_pair ...

التابع Array.reject في روبي

يعيد التابع reject مصفوفة جديدة تحتوي جميع عناصر المصفوفة التي استُدعيت معها والتي لم تحقق شرطًا محددًا. يُحافَظ على ترتيب العناصر المرفوضة المعادة بنفس ترتيبها كما كانت في المصفوفة الأصلية. إن لم تُمرَّر أية كتلة إلى التابع reject، فسيعيد كائنًا من النوع Enumerator. البنية العامة reject {|item| block } → new_ary reject → Enumerator القيم المعادة تعاد مصفوفة جديد تحوي جميع عناصر المصفوفة المعطاة التي لم تعاد معها القيمة true عند تطبيق الكتلة block عليها، أو يعاد كائن من النوع ...

التابع Enumerable.each_with_index في روبي

يستدعي التابع each_with_index الكتلة المعطاة مع وسيطين هما: العنصر نفسه وفهرسه لكل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه. إن مُرِّر أي شيء إلى التابع، فسيُمرَّر مباشرةً إلى ()each. إن لم تُعطَ الكتلة، فسيُعيد التابع كائنًا من النوع Enumerator. البنية العامة each_with_index(*args) { |obj, i| block } → enum each_with_index(*args) → an_enumerator المعاملات args الوسائط المراد تمريرها إلى ()each. القيمة المعادة يعاد كائن قابل للتعداد يحوي نتائج تكرار الكتلة block على كل عنصر وفهرسه من عناصر الكائن القابل للتعداد المعطى، أو ...

التابع Array.rindex في روبي

يجلب التابع rindex فهرس آخر ظهور لعنصر محدَّد من مصفوفة (يتحقق من التساوي باستعمال المعامل ==) أو فهرس آخر عنصر يحقق شرطًا محدَّدًا. في حال عدم تمرير أي شيء إلى التابع rindex، سيعيد‎ كائنًا من النوع Enumerator. البنية العامة rindex(obj) → int or nil rindex { |item| block } → int or nil rindex → Enumerator المعاملات obj الكائن المراد جلب فهرس آخر ظهور له في المصفوفة المعطاة. القيم المعادة يعاد عددٌ صحيحٌ يمثِّل فهرس آخر ظهور للعنصر obj من المصفوفة ...

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

يجلب التابع index‎ فهرس أول ظهور لعنصر محدَّد من مصفوفة (يتحقق من التساوي باستعمال المعامل ==) أو فهرس أول عنصر يحقق شرطًا محدَّدًا. في حال عدم تمرير أي شيء إلى التابع index، سيعيد‎ كائنًا من النوع Enumerator. البنية العامة index(obj) → int or nil index { |item| block } → int or nil index → Enumerator المعاملات obj كائن يراد جلب قيمة فهرسه من المصفوفة المعطاة. القيم المعادة يعاد عددٌ صحيحٌ يمثِّل فهرس ...

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

يستدعي التابع !map كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي طُبِّقَت عليه. إن لم يمرَّر أي شيء إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة map! {|item| block } → ary map! → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تبديل القيمة الجديدة التي تعيدها الكتلة block عند تطبيقها على كل عنصر من عناصر تلك المصفوفة مكان القيمة القديمة لذلك العنصر، أو يعاد كائنٌ من النوع ...

التابع Enumerable.minmax_by في روبي

يعيد التابع minmax_by العنصرين الذيَن تعيد الكتلة المعطاة أًصغر وأكبر قيمة مقابلة لهما على التوالي بعد تمرير عناصر الكائن القابل للتعداد إليها كلٌّ على حدة. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة minmax_by { |obj| block } → [min, max] minmax_by → an_enumerator القيمة المعادة تعاد مصفوفة تحوي العنصرين الذين تعيد الكتلة المعطاة أصغر وأكبر قيمة مقابلة لهما على التوالي بعد تمرير عناصر الكائن القابل للتعداد إليها كلٌّ على حدة، أو يعاد كائن من النوع Enumerator إن ...

التابع Integer.downto‎ في روبي

يكرر التابع downto‎ تنفيذ الكتلة البرمجية المعطاة مع تمرير الأعداد تنازليًا بداية من العدد الذي استُدعيت معه وحتى العدد المعطى. في حال عدم تمرير أي كتلة برمجية، فسيُعاد الكائن Enumerator. البنية العامة downto(limit) {|i| block } → self downto(limit) → an_enumerator‎ المعاملات limit‎ الحد الأدنى لعملية التكرار. القيمة المعادة في حال تمرير كتلة، فسيعاد ناتج تنفيذ هذه الكتلة مع تمرير العدد المعطى في كل مرة تنازليًّا حتى الوصول إلى العدد limit، وإلا فسيعاد الكائن Enumerator. أمثلة مثال على ...

التابع Integer.times‎ في روبي

يكرر التابع times‎ تنفيذ الكتلة البرمجية المعطاة عددًا محدَّدًا من المرات مع تمرير قيم عددية ابتداءً من الصفر وحتى العدد الذي يسبق العدد المعطى. في حال عدم تمرير أي كتلة برمجية، فسيُعاد كائن من النوع Enumerator. البنية العامة times {|i| block } → self times → an_enumerator‎ القيمة المعادة في حال تمرير كتلة برمجية، يعاد ناتج تنفيذ هذه الكتلة بعد تمرير أعداد تبدأ من الصفر وحتى القيمة int - 1 (إذ يكون int هو العدد المعطى) إليها. أما ...

التابع Integer.upto‎ في روبي

يكرر التابع upto‎ تنفيذ الكتلة البرمجية المعطاة مع تمرير الأعداد تصاعديًا بدايةً من العدد الذي استُدعي معه وحتى العدد المعطى. في حال عدم تمرير أي كتلة برمجية، فسيُعاد الكائن Enumerator. البنية العامة upto(limit) {|i| block } → self upto(limit) → an_enumerator‎ المعاملات limit‎ الحد الأقصى لعملية التكرار. القيمة المعادة في حال تمرير كتلة، فسيعاد ناتج تنفيذ هذه الكتلة مع تمرير العدد المعطى في كل مرة تصاعديًّا حتى الوصول إلى العدد limit، وإلا فسيعاد الكائن Enumerator. أمثلة مثال على استخدام التابع ...

التابع Enumerator.next في روبي

يعيد التابع next الكائن التالي في المُعدِّد الذي استدعي معه، ويحرك موضع المؤشر الداخلي للأمام خطوة واحدة. عند وصول المؤشر إلى النهاية، يُطلَق الاستثناء StopIteration. البنية العامة next → object القيمة المعادة يعاد الكائن التالي في المُعدِّد المعطى. أمثلة مثال على استعمال التابع next: a = [1,2,3] e = a.to_enum p e.next #=> 1 p e.next #=> 2 p e.next #=> 3 p e.next #=> StopIteration انتبه إلى أنَّ السلسلة التعدادية المعادة عبر next لا تؤثر على التوابع التعدادية الغير ...

التابع Range.each‎ في روبي

يُكرر التابع each تنفيذ الكتلة المعطاة مع تمرير عناصر المجال إليها بالتتابع. لا يمكن استخدام التابع each إلا ​​إن كان عنصر بداية المجال يدعم التابع succ. يُطلَق الاستثناء TypeError إن لم يٌعرّف ذلك العنصر التابع succ (مثل الصنف Float). في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف enumerator بدلًا من ذلك. البنية العامة each {| i | block } → rng each → an_enumerator‎ القيمة المعادة يعاد مجالٌ ناتج عن تنفيذ الكتلة block على كل عنصر من عناصر المجال المعطى. ...

التابع Enumerator.peek في روبي

يعيد التابع peek الكائن التالي في المُعدِّد الذي استدعي معه ولكن لا يحرِّك موضع المؤشر الداخلي للأمام. إن كان المؤشر موجود مسبقًا في النهاية، فسيُطلَق الاستثناء StopIteration. البنية العامة peek → object القيمة المعادة يعاد الكائن التالي في المُعدِّد المعطى. أمثلة مثال على استعمال التابع peek: a = [1,2,3] e = a.to_enum p e.next #=> 1 p e.peek #=> 2 p e.peek #=> 2 p e.peek #=> 2 p e.next #=> 2 p e.next #=> 3 p ...

التابع ARGF.each_line في روبي

يعيد التابع each_line قيمة قابلة للعد (enumerator) تتكرر (iterates) عبر كل سطر (الذي يفصل بالفاصلة الممرَّرة) من كل ملف من الملفات الموجودة في ARGV. في حال تمرير كتلة برمجية للتابع each_line، فسيُمرّر كل سطر بدوره إلى تلك الكتلة، وإلا فستعاد قيمة قابلة للعد (enumerator). يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة السطر الأخير من الملف الأول، سيُعاد السطر الأول من الملف الثاني. يمكن ...

التابع Array.map في روبي

يستدعي التابع map كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع الناتج الذي تعيده هذه الكتلة لكل عنصر في مصفوفة جديدة وتعيدها. إن لم تمرَّر أية كتلة إلى التابع map، فسيعيد كائنًا من النوع Enumerator. البنية العامة map { |item| block } → new_ary map → Enumerator القيم المعادة تعاد مصفوفة جديدة تحوي ناتج تطبيق الكتلة block على كل عنصر من عناصر المصفوفة المعطاة، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة أمثلة ...

التابع Array.repeated_permutation في روبي

يشبه التابع repeated_permutation التابع permutation باستثناء أنَّه يستطيع إنشاء تبديلات للعناصر مع نفسها (أي تكرار العناصر نفسها) وأنه لا يمكن استدعاؤه دون تمرير عدد العناصر المراد التبديل بينها إليه. لا يوجد أي ضمان للتنبؤ بترتيب العناصر المعادة. إن لم تُمرَّر أي كتلة (block) إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة repeated_permutation(n) { |p| block } → ary repeated_permutation(n) → Enumerator المعاملات n عدد صحيح يحدد عدد عناصر المصفوفات الفرعية المراد تبديل عناصر المصفوفة المعطاة مع بعضها بعضًا. القيم ...

التابع Enumerable.find_index في روبي

يوازن التابع find_index كل عنصر من عناصر الكائن القابل للتعداد الذي استدعي معه مع قيمة محدَّدة ثم يعيد فهرس أول قيمة مطابقة، أو يمرِّر تلك العناصر إلى الكتلة المعطاة ويعيد فهرس أول عنصر محقق لها (لا تعيد معه القيمة false). إن لم يتطابق أو يُعثَر على أي عنصر محقق للكتلة، فسيعيد التابع القيمة nil. إن لم تُعطَ أية كتلة ولم تُمرَّر أية قيمة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة find_index(value) → int or nil find_index { |obj| block } → int ...

التابع Array.permutation في روبي

يعيد التابع permutation كل التبديلات (permutations) الممكنة لجميع عناصر مصفوفة، أو كل التبديلات المكونة من n عنصر من عناصر المصفوفة فقط ثم يعيد المصفوفة نفسها. لا يوجد أي ضمان للتنبؤ بترتيب العناصر المعادة. إن لم تُمرَّر أي كتلة (block) إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة permutation { |p| block } → ary permutation → Enumerator permutation(n) { |p| block } → ary permutation(n) → Enumerator المعاملات n عدد صحيح يحدد عدد عناصر المصفوفات الفرعية المراد تبديل عناصر المصفوفة ...

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