اذهب إلى المحتوى

السؤال

نشر

هل هنالك أي فرق عملي بين استخدام كتلة 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 }

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

Recommended Posts

  • 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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...