Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ما هي الكتلة؟

جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy. الدرس 15 من 56.

لقد كنت تكتب كتلًا بالفعل. في كل مرة كتبت فيها each do |x| ... end، كان الجزء الواقع بين do وend عبارة عن block: جزء من التعليمات البرمجية يُمرَّر إلى إحدى الطرق.

[1, 2, 3].each do |n|
  puts n * 2
end

هنا، تُعد each طريقةً في المصفوفة، ويُعد do |n| ... end كتلةً. تُشغّل each الكتلة مرةً واحدةً لكل عنصر، مع تمريره إليها بوصفه n.

الكتل ليست كائنات منفصلة تخزّنها في متغيرات، بل ترتبط مباشرةً باستدعاء الطريقة. إما أن تحصل الطريقة على كتلة أو لا تحصل عليها، وقد صُمِّمت معظم طرق التكرار (each، map، select، times) لتأخذ واحدة.

3.times do |i|
  puts "hi #{i}"
end

استدعاء طريقة بدون كتلتها يغيّر ما تفعله. يُرجع [1,2,3].map بدون كتلة عدّادًا بدلًا من مصفوفة محوّلة، لذا تُعدّ الكتلة جزءًا من معنى الطريقة.

challenge icon

التحدي

مبتدئ

اقرأ عددًا صحيحًا n من الإدخال. استخدم الطريقة times مع block لطباعة الرسالة Iteration <i> لكل قيمة من قيم i من 0 حتى n - 1.

بالنسبة إلى الإدخال 3، يكون الناتج:

Iteration 0
Iteration 1
Iteration 2

جرّب بنفسك

n = gets.to_i

# TODO: استخدم n.times مع block لطباعة كل تكرار
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق العمليات

تدرّب بنفسك: مترجم Ruby عبر الإنترنت