Latest web development tutorials

روبي بلوك

كنت تعرف كيفية تحديد طريقة روبي وكيفية استدعاء الأسلوب. وبالمثل، روبي لديه مفهوم الكتلة.

  • وتتكون كتلة من الكثير من التعليمات البرمجية.
  • تحتاج إلى أن تأخذ اسم كتلة.
  • ومرفق طيه كود كتلة دائما في الأقواس المجعدة {} الداخل.
  • من الذي قد منع دائما استدعاء دالة الذي يحمل نفس الاسم. هذا يعني أنه إذا كان اسم كتلة الخاصللاختبار،ثم كنت تريد استخدام لهذه الكلمة كتلةاختباروظيفة.
  • يمكنك استخدام العبارةالعائدلدعوة كتلة.

قواعد

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 代码块