• 0

ما الفرق بين استخدام do و {} في روبي؟

هل هنالك أي فرق عملي بين استخدام كتلة do وبين رموز {} في لغة روبي؟ مثال على الاستخدام:

my_array = [:uno, :dos, :tres]
my_array.each { |item|
    puts item
}

my_array = [:uno, :dos, :tres]
my_array.each do |item|
    puts item
end

اكتشفت أن رموز {} تسمح لك بوضع الكتلة (block) في سطر واحد كما في المثال التالي:

my_array.each { |item| puts item }

عدا ذالك هل توجد فروق أخرى بين الإثنين؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

بشكل عام من الأفضل استخدام رموز {} عندما تقوم بعمليات بسيطة مثل استدعاء تابع أو مقارنة... كما في المثال التالي:

some_collection.each { |element| puts element }

أما لو احتجت إلى القيام بعمليات وأعمال متعددة الأسطر وأكثر تعقيدا ففي هذه الحالة يُنصح باستخدام كتلة do كما في هذا المثال:

1.upto(10) do |x|
  add_some_num = x + rand(10)
  puts '*' * add_some_num
end

ملاحظة: إن رموز {} لديها أسبقية أعلى من do..end، وهذا قد يساعدك بالقيام بأشياء في بعض الأحيان وقد بسبب لك أخطاء ومشاكل في أحيان أخرى كما في المثالين التاليين:

1.upto 3 do |x|
  puts x
end

1.upto 3 { |x| puts x }
# SyntaxError: compile error

فالمثال الثاني لن يعمل إلا لو وضعت أقواس كالتالي:

1.upto(3) { |x| puts x }

المصدر: كتاب Ruby Cookbook

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن