English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
أنت تعلم كيفية تعريف الدوال وكيفية استدعائها في Ruby. بنفس الطريقة، يحتوي Ruby على مفهوم الكائنات.
block_name{ statement1 statement2 .......... }
في هذا السياق، ستعلم كيفية استخدام yield جملة لاستدعاء القطعة. ستعلم أيضًا كيفية استخدام yield جملة لاستدعاء القطعة. في المثال، سترى هذا النوع من yield جملة.
دعنا نرى مثالًا على جملة yield:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test puts "في طريقة test " yield puts "لقد عدت إلى طريقة test " yield انتهاء test {puts "في القطعة "}
نتيجة مثال التنفيذ أعلاه:
في طريقة test في القطعة لقد عدت إلى طريقة test في القطعة
يمكنك أيضًا تقديم جملة yield مع متغيرات. إليك مثال:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test yield 5 puts "في طريقة test " yield 100 انتهاء test {|i| puts "في القطعة #{i} "}
نتيجة مثال التنفيذ أعلاه:
في القطعة 5 في طريقة test في القطعة 100
في هذا السياق،yield الجملة تتبعها المتغيرات. يمكنك حتى تقديم متغيرات متعددة. في القطعة، يمكنك وضع متغير بين علامتي || لقبول المتغيرات. لذلك، في الكود السابق، جملة yield 5 تقوم بتقديم قيمة 5 كمعامل إلى القطعة test.
الآن، لنظر في الجملة التالية:
test {|i| puts "في القطعة #{i} "}
في هذا السياق، قيمة 5 ستتم استقبالها في المتغير i. الآن، لنظر في جملة puts التالية:
puts "في القطعة #{i} "
يظهر هذا الكود من puts هو:
في القطعة 5
إذا كنت ترغب في تقديم متغيرات متعددة، yield الجملة تبدو كالتالي:
yield a, b
في هذه الحالة، القطعة تبدو كالتالي:
test {|a, b| statement}
المتغيرات تستخدم بفواصل.
لقد رأيت كيف تربط القطعة بالطريقة. عادةً، تستخدم جملة yield لاستدعاء القطعة من طريقة لها نفس الاسم. لذلك، يبدو الكود كالتالي:
#!/usr/bin/ruby def test yield انتهاء test{ puts "Hello world"}
هذه هي الطريقة الأبسط لتحقيق قطعة. تستخدم yield استدعاء جملة test قطعة.
إذا كان آخر متغير في الطريقة يحتوي على &، فإنك يمكنك تقديم قطعة إلى هذه الطريقة، ويمكنك تخصيص هذه القطعة كآخر متغير. إذا كانت * و & موجودة في قائمة المتغيرات، يجب وضع & في النهاية.
#!/usr/bin/ruby def test(&block) block.call انتهاء test { puts "Hello World!"}
نتيجة مثال التنفيذ أعلاه:
مرحبًا العالم!
يمكن للملف المصدر الخاص بـ Ruby أن يحتوي على كود يجب تنفيذه عند تحميل الملف (قسم BEGIN) وكود يجب تنفيذه عند اكتمال تنفيذ البرنامج (قسم END).
#!/usr/bin/ruby BEGIN { # بداية الكود puts "بداية الكود" } END { # نهاية الكود puts "نهاية الكود" } # كود رئيسي puts "كود رئيسي"
يمكن للبرنامج أن يحتوي على عدة أقسام BEGIN وEND. يتم تنفيذ أقسام BEGIN بناءً على ترتيبها. يتم تنفيذ أقسام END بناءً على ترتيبها العكسي. عند التنفيذ، يظهر البرنامج النتيجة التالية:
بداية الكود كود رئيسي نهاية الكود