التابع Enumerator.each_with_object في روبي

من موسوعة حسوب
مراجعة 08:05، 29 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إنشاء الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يكرر التابع each_with_object الكتلة المعطاة على كل عنصر من عناصر الكائن الذي استدعي معه مع كائن آخر اعتباطي (الكائن المُمرَّر إليه).

إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator.

البنية العامة

each_with_object(obj) {|(*args), obj| ... }
each_with_object(obj)

المعاملات

obj

الكائن الذي سيُكرَّر مع كل عنصر من عناصر الكائن المعطى.

القيمة المعادة

يعاد الكائن obj المعطى، أو يعاد كائن جديد من النوع Enumerator إن لم تُعطَ أية كتلة.

أمثلة

مثال على استعمال التابع each_with_object:

to_three = Enumerator.new do |y|
  3.times do |x|
    y << x
  end
end

to_three_with_string = to_three.with_object("foo")
to_three_with_string.each do |x,string|
  puts "#{string}: #{x}"
end

# => foo:0
# => foo:1
# => foo:2

انظر أيضًا

  • التابع each: يتكرر عبر الكتلة المعطاة وفقًا للكائن المُعدِّد الذي استدعي معه والطريقة التي أُنشِئ بها.
  • التابع each_with_index: يشبه التابع with_index باستثناء أنه لا يوجد إزاحة بادئة لبدء العملية عند قيمة محدَّدة.

مصادر