التابع Proc.arity في روبي

من موسوعة حسوب
< Ruby‏ | Proc
مراجعة 08:19، 26 نوفمبر 2018 بواسطة محمد-خطيب (نقاش | مساهمات) (أنشأ الصفحة ب'{{DISPLAYTITLE:التابع <code>Proc.arity</code> في روبي}} يُعيد التابع <code>arity</code> عدد الوسائط الإلزاميَّة في الكا...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يُعيد التابع arity عدد الوسائط الإلزاميَّة في الكائن proc الذي استدعي معه. إذا عُرِّفت الكتلة (block) من دون وسائط، فسيُعيد التابع القيمة 0. إذا عُرِّفت الكتلة مع عدد محدَّد n من الوسائط، فسيُعيد التابع ذلك العدد n. إذا كان للكتلة وسائط اختيارية، فسيُعيد التابع 1-n-، إذ يمثِّل n عدد الوسائط الإلزامية، باستثناء الكتل التي ليست من النوع lambda والتي تمتلك عددًا محدودًا من الوسائط الاختيارية؛ في هذه الحالة الأخيرة، يُعيد التابع العدد n. تُعتبر وسائط الكلمة المفتاحية (keyword argument) وسيطًا إضافيًّا واحدًا، ويصبح ذلك الوسيط إلزاميًّا إذا كان أيٌّ من وسائط الكلمة المفتاحية إلزاميًّا. تعريف كتلة proc من دون وسائط مشابه لتعريف كتلة على أنَّ || هي وسائطها.

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

arity  integer

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

تُعاد القيمة 0 إذا عُرِّفت الكتلة من دون وسائط، أو يُعاد العدد n إذا عُرِّفت الكتلة مع عدد محدَّد n من الوسائط، أو يُعاد العدد 1-n- إذا كان للكتلة وسائط اختيارية، إذ يمثِّل n عدد الوسائط الإلزامية. باستثناء الكتل التي ليست من النوع lambda والتي تمتلك عدد محدود من الوسائط الاختيارية، يُعاد عندها العدد n.

أمثلة

مثالٌ عن استخدام التابع arity:

proc {}.arity                  #=>  0
proc { || }.arity              #=>  0
proc { |a| }.arity             #=>  1
proc { |a, b| }.arity          #=>  2
proc { |a, b, c| }.arity       #=>  3
proc { |*a| }.arity            #=> -1
proc { |a, *b| }.arity         #=> -2
proc { |a, *b, c| }.arity      #=> -3
proc { |x:, y:, z:0| }.arity   #=>  1
proc { |*a, x:, y:0| }.arity   #=> -2

proc   { |a=0| }.arity         #=>  0
lambda { |a=0| }.arity         #=> -1
proc   { |a=0, b| }.arity      #=>  1
lambda { |a=0, b| }.arity      #=> -2
proc   { |a=0, b=0| }.arity    #=>  0
lambda { |a=0, b=0| }.arity    #=> -1
proc   { |a, b=0| }.arity      #=>  1
lambda { |a, b=0| }.arity      #=> -2
proc   { |(a, b), c=0| }.arity #=>  1
lambda { |(a, b), c=0| }.arity #=> -2
proc   { |a, x:0, y:0| }.arity #=>  1
lambda { |a, x:0, y:0| }.arity #=> -2

انظر أيضًا

  • التابع binding: يُعيد الرَّبط الموافق للكائن Proc الذي استدعي معه.
  • التابع curry: يُعيد كتلة proc مقسَّمة.
  • التابع to_s: يُعيد المُعرِّف الفريد لكتلة proc محدّدة بالتزامن مع إشارة لمكان تعريف هذه الكتلة.
  • التابع parameters: يُعيد معلوماتٍ عن معاملات كتلة محدَّدة من النوع proc.
  • التابع source_location: يُعيد اسم ملف روبي المصدري ورقم السَّطر الحاوي على كتلة procمحدَّدة.

مصادر