روبي بلوك
كنت تعرف كيفية تحديد طريقة روبي وكيفية استدعاء الأسلوب. وبالمثل، روبي لديه مفهوم الكتلة.
- وتتكون كتلة من الكثير من التعليمات البرمجية.
- تحتاج إلى أن تأخذ اسم كتلة.
- ومرفق طيه كود كتلة دائما في الأقواس المجعدة {} الداخل.
- من الذي قد منع دائما استدعاء دالة الذي يحمل نفس الاسم. هذا يعني أنه إذا كان اسم كتلة الخاصللاختبار،ثم كنت تريد استخدام لهذه الكلمة كتلةاختباروظيفة.
- يمكنك استخدام العبارةالعائدلدعوة كتلة.
قواعد
block_name{ statement1 statement2 .......... }
هنا سوف تتعلم كيفية استخدام عبارةالعائدالبسيط للاتصال الكتلة. سوف تتعلم أيضا كيفية استخدام العبارةالعائدمع المعلمات إلى تسمى كتلة. في المثال، سترى اثنين من أنواع بيانالعائد.
بيانالعائد
دعونا ننظر إلى بيان سبيل المثال العائد:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test puts "在 test 方法内" yield puts "你又回到了 test 方法内" yield end test {puts "你在块内"}
أمثلة على النتائج التشغيلية المذكورة أعلاه على النحو التالي:
在 test 方法内 你在块内 你又回到了 test 方法内 你在块内
يمكنك أيضا تمرير بيان العائد مع المعلمات. هنا مثال على ذلك:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- def test yield 5 puts "在 test 方法内" yield 100 end test {|i| puts "你在块 #{i} 内"}
أمثلة على النتائج التشغيلية المذكورة أعلاه على النحو التالي:
你在块 5 内 在 test 方法内 你在块 100 内
هنا، بعد اتباع بيانالعائدالمعلمات. حتى يمكنك تمرير معلمات متعددة. في كتلة، يمكنك وضع متغير بين اثنين من أشرطة عمودية لقبول المعلمات. وهكذا، في رمز أعلاه، يتم تمرير العائد 5 بيان كمعلمة لقيمة 5 قطع الاختبار.
الآن، والنظر في العبارة التالية:
test {|i| puts "你在块 #{i} 内"}
هنا، فإن قيمة 5 تتلقى ط متغير. الآن، وضعنا نلاحظ البيان التالي:
puts "你在块 #{i} 内"
هذا يضع بيان الناتج هو:
你在块 5 内
إذا كنت ترغب في تمرير المعلمات متعددة، ثم بيانالعائدعلى النحو التالي:
yield a, b
في هذا الوقت، كما هو مبين في كتلة:
test {|a, b| statement}
معلمات مفصولة بفواصل.
الكتل والطرق
رأيتم بين كتلة وطريقة كيف مترابطة. يمكنك عادة استخدام عبارة العائد يدعو كتلة من طريقة لها نفس الاسم. ولذلك، فإن متاحة على النحو التالي:
#!/usr/bin/ruby def test yield end test{ puts "Hello world"}
هذا المثال هو أبسط وسيلة لتحقيق الكتلة. استخدام العبارةالعائديدعو كتلة اختبار.
ولكن إذا كانت المعلمة الأخيرة قبل الأسلوب مع وبعد ذلك يمكنك أن يتم تمرير طريقة كتلة، ويمكن أن يتم تعيين هذه الكتلة إلى المعلمة الأخيرة. إذا كان * ووأيضا تظهر في قائمة المعلمة، وينبغي أن توضع على الظهر.
#!/usr/bin/ruby def test(&block) block.call end test { puts "Hello World!"}
أمثلة على النتائج التشغيلية المذكورة أعلاه على النحو التالي:
Hello World!
BEGIN و END بنات
كل ملف مصدر روبي أن تعلن عندما كتل التعليمات البرمجية (BEGIN كتلة) عندما يتم تحميل الملف لتشغيل، وبعد البرنامج ينتهي تنفيذ كتل التعليمات البرمجية لتشغيل (كتلة END).
#!/usr/bin/ruby BEGIN { # BEGIN 代码块 puts "BEGIN 代码块" } END { # END 代码块 puts "END 代码块" } # MAIN 代码块 puts "MAIN 代码块"
يمكن أن يحتوي البرنامج متعددة تبدأ وتنتهي الكتل. يتم تنفيذ BEGIN كتلة بالترتيب الذي تظهر به. كتل END كما تظهر في ترتيب عكسي. عندما أعدم، ينتج البرنامج المذكور أعلاه النتائج التالية:
BEGIN 代码块 MAIN 代码块 END 代码块