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

do..end مقابل الأقواس { }

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

تمنحك لغة Ruby طريقتين لكتابة block. كلاهما يؤديان نفس المعنى، ولكن لكل منهما حالة استخدام مفضلة.

do...end تُستخدم للكتل البرمجية متعددة الأسطر:

[1, 2, 3].each do |n|
  doubled = n * 2
  puts "#{n} -> #{doubled}"
end

الأقواس المتعرجة { ... } تُستخدم لكتل السطر الواحد، القصيرة، والتي تأتي على شكل تعبير:

[1, 2, 3].each { |n| puts n * 2 }

لكليهما أسبقية مختلفة قليلاً، لكن القاعدة التي يحتاجها المتعلمون هي قاعدة الأسلوب: الأقواس للأسطر المنفردة، do...end للأسطر المتعددة.

يمكن لكلا الشكلين إرجاع قيمة. التعبير الأخير في الكتلة (block) هو ما يتم تمريره مرة أخرى إلى أساليب مثل map:

[1, 2, 3].map { |n| n * 10 }    # [10, 20, 30]
[1, 2, 3].map do |n|
  n * 10
end                              # [10, 20, 30]
challenge icon

التحدي

سهل

اقرأ قائمة من الأعداد الصحيحة المفصولة بفاصلة من الإدخال. اطبع سطرين:

  1. كل رقم مضاعفاً، ومدمجاً بـ , . استخدم صيغة الأقواس (brace) لـ map.
  2. السلسلة النصية "<n> squared is <n*n>" لكل رقم، كل واحد في سطر. استخدم صيغة do...end لـ each.

للإدخال 1,2,3، يكون المخرج:

2, 4, 6
1 squared is 1
2 squared is 4
3 squared is 9

جرّب بنفسك

numbers = gets.chomp.split(",").map(&:to_i)

# مهمة: السطر 1، مضاعف، صيغة الأقواس لـ map، مدمج بـ ", "
# مهمة: الأسطر 2..n، مربعات، صيغة do...end لـ each
quiz iconاختبر نفسك

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

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

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