نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف Proc في روبي
كائنات الصنف Proc هي كتلٌ من الشيفرات البرمجية رُبطت إلى مجموعة من المتغيرات المحليَّة. حالما تُربط، يمكن استدعاء الشيفرة في سياقات مختلفة ويبقى الوصول متاحًا لتلك المتغيرات. def gen_times(factor)
return Proc.new {|n| n*factor }
end
times3 = gen_times(3)
times5 = gen_times(5)
times3.call(12) #=> 36
times5.call(5) #=> 25
times3.call(times5.call(4)) #=> 60
توابع الصنف العامة (Public ...
المعامل === في الصنف Proc في روبي
يستدعي المعامل === الكتلة (block) بتمرير الكائن الواقع على يمينه كمعاملٍ للنسخة proc بشكلٍ مشابهٍ للتابع Proc.call. يسمح هذا للكائن proc أن يكون هدفًا للبنود (when clause) في عبارات case. البنية العامة proc === obj → result_of_proc
القيم المعادة تُعاد نتيجة تنفيذ الكتلة. انظر أيضًا التابع hash: يحسب قيمة التجزئة الموافقة لجسم الكتلة proc التي استدعيت معه ثمَّ يعيدها. التابع ?lambda: يتحقَّق إذا كانت معالجة الوسائط صارمةً في الكائن Proc. التابع to_proc: يُعدُّ جزءًا من البروتوكول المستخدم في تحويل الكائنات ...
التابع Proc.arity في روبي
يُعيد التابع arity عدد الوسائط الإلزاميَّة في الكائن proc الذي استدعي معه. إذا عُرِّفت الكتلة (block) من دون وسائط، فسيُعيد التابع القيمة 0. إذا عُرِّفت الكتلة مع عدد محدَّد n من الوسائط، فسيُعيد التابع ذلك العدد n. إذا كان للكتلة وسائط اختيارية، فسيُعيد التابع 1-n-، إذ يمثِّل n عدد الوسائط الإلزامية، باستثناء الكتل التي ليست من النوع lambda والتي تمتلك عددًا محدودًا من الوسائط الاختيارية؛ في هذه الحالة الأخيرة، يُعيد التابع العدد n. تُعتبر وسائط الكلمة المفتاحية (keyword argument) وسيطًا ...
التابع ?Proc.lambda في روبي
يتحقَّق التابع ?lambda إذا كانت معالجة الوسائط صارمةً في الكائن Proc (أي يجب تمرير نفس العدد تمامًا من الوسائط المعرَّفة عند إنشاء الكائن). تُنشأ هذه الكائنات عادةً بوساطة lambda. كائنات الصنف Proc المُنشأة بوساطة proc ليست صارمةً وتمتلك الميزات التالية: تتجاهل الوسائط الإضافيَّة: proc {|a,b| [a,b] }.call(1,2,3) #=> [1,2]
تُعيِّن القيمة nil للوسائط الناقصة: proc {|a,b| [a,b] }.call(1) #=> [1,nil]
توسِّع وسيط مصفوفة مفردة: proc {|a,b| [a,b] }.call([1,2]) #=> [1,2]
كائن الصنف Proc المُنشأ بواسطة lambda لا يمتلك هذه الميِّزات. lambda ...
التابع Proc.to_proc في روبي
يُعدُّ التابع to_proc جزءًا من البروتوكول المستخدم في تحويل الكائنات إلى كائناتٍ من الصنف Proc. إن استدعي التابع مع نسخة من الصنف Proc، فسيعيد هذه النسخة نفسها ببساطة. البنية العامة to_proc → proc
القيم المعادة يُعاد ناتج تحويل الكائن المعطى إلى كائنٍ من الصنف Proc. انظر أيضًا التابع hash: يحسب قيمة التجزئة الموافقة لجسم الكتلة proc التي استدعيت معه ثمَّ يعيدها. التابع ?lambda: يتحقَّق إذا كانت معالجة الوسائط صارمةً في الكائن Proc. المعامل ===: يستدعي الكتلة بتمرير الكائن الواقع على ...
التابع Proc.binding في روبي
يُعيد التابع binding الرَّبط (binding) الموافق للكائن Proc الذي استدعي معه. لاحظ أنَّ التابع Kernel.eval يقبل إما كائنًا من النوع Proc أو النوع Binding على أنَّه معامله الثّاني. البنية العامة binding → binding
القيم المعادة يُعاد كائنٌ من النوع Binding. أمثلة مثالٌ عن استخدام التابع binding: def fred(param)
proc {}
end
b = fred(99)
eval("param", b.binding) #=> 99
انظر أيضًا التابع arity: يُعيد عدد الوسائط الإلزاميَّة في الكائن proc الذي استدعي معه. التابع curry: يُعيد كتلة proc مقسَّمة. التابع to_s: ...
التابع Proc.new في روبي
يُنشئ التابع new كائنًا جديدًا من الصنف Proc، ويربطه إلى السياق الحالي. قد يُستدعى التابع new من دون كتلةٍ وهذا فقط ضمن التوابع المرفقة بكتل مُسبقًا، إذ تُحوَّل تلك الكتلة في مثل هذه الحالة إلى كائنٍ من النوع Proc. البنية العامة new {|...| block } → a_proc
new → a_proc
المعاملات … الوسائط المُمرَّرة إلى الكتلة. block الكتلة المراد تمريرها إلى الكائن. القيم المعادة يُعاد كائنٌ من الصنف Proc. أمثلة مثالٌ عن استخدام التابع new: def proc_from
Proc.new
end
proc = proc_from ...
التابع Proc.source_location في روبي
يُعيد التابع source_location اسم ملف روبي المصدري ورقم السَّطر الحاوي على كتلة proc محدَّدة، أو يُعيد القيمة nil إذا كانت هذه الكتلة غير مُعرَّفة في روبي (مثل native). البنية العامة source_location → [String, Integer]
القيم المعادة تُعاد مصفوفةٌ تحوي سلسلةً نصيَّةً (String) تُمثِّل اسم ملف روبي المصدري وعددًا صحيحًا (Integer) يمثِّل رقم السطر الذي يحتوي كتلة proc المُحدَّدة، أو تُعاد القيمة nil إذا كانت هذه الكتلة غير مُعرَّفة في روبي. انظر أيضًا التابع arity: يُعيد عدد الوسائط الإلزاميَّة في الكائن ...
التابع Method.curry في روبي
يعيد curry كائن proc مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه. عندما يكون عدد الوسائط الممررة إلى الكتلة proc أقل من رتبة (arity) التابع، فستعاد كتلة proc مجزءة أخرى. ولن يُستدعى التابع فعليًا إلا عندما يتم توفير الوسائط الكافية لتوقيع التابع (method signature). يجب توفير الوسيط الاختياري arity إن أردت تجزئة (currying) التوابع التي تقبل عددًا متغيرًا من الوسائط لتحديد عدد الوسائط المطلوبة قبل استدعاء التابع فعليًا. البنية العامة curry → proc
curry(arity) → proc
المعاملات arity في ...
التابع Proc.parameters في روبي
يُعيد التابع parameters معلوماتٍ عن معاملات كتلة محدَّدة من النوع proc. البنية العامة parameters → array
القيم المعادة تُعاد مصفوفةٌ تتضمَّن معلوماتٍ عن معاملات الكتلة proc المعطاة. أمثلة مثالٌ عن استخدام التابع parameters: prc = lambda{|x, y=42, *other|}
prc.parameters #=> [[:req, :x], [:opt, :y], [:rest, :other]]
انظر أيضًا التابع arity: يُعيد عدد الوسائط الإلزاميَّة في الكائن proc الذي استدعي معه. التابع binding: يُعيد الرَّبط الموافق للكائن Proc الذي استدعي معه. التابع curry: يُعيد كتلة proc مقسَّمة. التابع to_s: يُعيد المُعرِّف ...
التابع Proc.to_s في روبي
يُعيد التابع to_s المُعرِّف الفريد (unique identifier) لكتلة proc محدّدة بالتزامن مع إشارة لمكان تعريف هذه الكتلة. يملك هذا التابع اسمًا بديلًا هو inspect. البنية العامة to_s → string
القيم المعادة تُعاد سلسلةٌ نصيَّةٌ (string) تُمثِّل المُعرِّف الفريد للكتلة proc المعطاة بالإضافة إلى إشارة لمكان تعريف هذه الكتلة. انظر أيضًا التابع arity: يُعيد عدد الوسائط الإلزاميَّة في الكائن proc الذي استدعي معه. التابع binding: يُعيد الرَّبط الموافق للكائن Proc الذي استدعي معه. التابع curry: يُعيد كتلة proc مقسَّمة. التابع parameters: ...
التابع Proc.hash في روبي
يحسب التابع hash قيمة التجزئة (hash value) الموافقة لجسم الكتلة proc التي استدعيت معه ثمَّ يعيدها. انظر أيضًا في صفحة التابع Object.hash. البنية العامة hash → integer
القيم المعادة تُعاد قيمة التجزئة الموافقة لجسم الكتلة proc المعطاة. انظر أيضًا التابع ?lambda: يتحقَّق إذا كانت معالجة الوسائط صارمةً في الكائن Proc. التابع to_proc: يُعدُّ جزءًا من البروتوكول المستخدم في تحويل الكائنات إلى كائناتٍ من الصنف Proc. المعامل ===: يستدعي الكتلة بتمرير الكائن الواقع على يمينه كمعاملٍ للنسخة proc. التابع call: يستدعي ...
التابع Proc.curry في روبي
يُعيد التابع curry كتلة proc مقسَّمة (curried). إذا أُعطي الوسيط arity الاختياري، فسيُحدِّد التابع عدد الوسائط آنذاك. تستقبل كتلة proc المقسَّمة بعض الوسائط. إذا زُوِّدت بعددٍ كافٍ من الوسائط، فستُمرِّر الوسائط المُزوَّدة إلى كتلة proc الأصلية وتُعيد النتيجة. خلاف ذلك، تُعيد كتلة proc مقسَّمةً أخرى لتأخذ باقي الوسائط. البنية العامة curry → a_proc
curry(arity) → a_proc
المعاملات arity وسيط اختياري يُعطى إذا أُريد من التابع تحديد عدد الوسائط. القيم المعادة تُعاد كتلة proc مقسَّمة، يُعاد عدد الوسائط إذا أعطي معامل arity ...
التابع Proc.yield في روبي
يستدعي التابع yield الكتلة المرتبطة بالمتغير الذي استعمل معه مُعيِّنًا معاملات الكتلة إلى القيم المعطاة ضمنه باستخدام شيءٍ مشابهٍ لدلالات استدعاء التابع. يُعيد المعامل قيمة آخر تعبيرٍ قُيِّم في الكتلة. a_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } }
a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
a_proc[9, 1, 2, 3] #=> [9, 18, 27]
a_proc.(9, 1, 2, 3) #=> [9, 18, 27]
a_proc.yield(9, 1, ...
التابع Proc.call في روبي
يستدعي التابع call الكتلة المرتبطة بالمتغير الذي استعمل معه مُعيِّنًا معاملات الكتلة إلى القيم المعطاة ضمنه باستخدام شيءٍ مشابهٍ لدلالات استدعاء التابع. يُعيد المعامل قيمة آخر تعبيرٍ قُيِّم في الكتلة. a_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } }
a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
a_proc[9, 1, 2, 3] #=> [9, 18, 27]
a_proc.(9, 1, 2, 3) #=> [9, 18, 27]
a_proc.yield(9, 1, ...
التابع InstructionSequence.of في روبي
يُعيد التابع of سلسلة التعليمات التي تحوي الكائن Proc أو Method المعطى. البنية العامة of(p1)
أمثلة مثال على استعمال التابع of باستخدام irb: # a proc
> p = proc { num = 1 + 2 }
> RubyVM::InstructionSequence.of(p)
> #=> <RubyVM::InstructionSequence:block in irb_binding@(irb)>
# for a method
> def foo(bar); puts bar; end
> RubyVM::InstructionSequence.of(method(:foo))
> #=> <RubyVM::InstructionSequence:foo@(irb)>
أو باستخدام compile_file: # /tmp/iseq_of.rb
def hello
puts "hello, world"
end
$a_global_proc = proc { str = 'a' + 'b' }
# in irb
> require '/tmp/iseq_of.rb'
# first the method hello
> RubyVM::InstructionSequence.of(method(:hello))
> #=> ...
التابع Proc.inspect في روبي
يُعدُّ التابع inspect اسمًا بديلًا (alias) للتابع to_s. البنية العامة inspect()
انظر أيضًا التابع to_s: يُعيد المُعرِّف الفريد لكتلة proc محدّدة بالتزامن مع إشارة لمكان تعريف هذه الكتلة. التابع arity: يُعيد عدد الوسائط الإلزاميَّة في الكائن proc الذي استدعي معه. التابع binding: يُعيد الرَّبط الموافق للكائن Proc الذي استدعي معه. مصادر صفحة التابع inspect في الصنف Proc في توثيق روبي الرسمي.
التابع Thread.add_trace_func في روبي
يضيف التابع add_trace_func عملية (كائنًا من النوع Proc) كمعالج للتعقب (tracing) إلى المهمة الفرعية التي استدعيت معه. انظر صفحتي التابعين set_trace_func و Kernel.set_trace_func لمزيد من المعلومات. البنية العامة add_trace_func(proc) → proc
المعاملات proc كائن من النوع Proc. القيمة المعادة يعاد كائنٌ من النوع Proc. انظر أيضًا التابع alive?: يتحقق إن كانت المهمة الفرعية التي استُدعي معها قيد التشغيل أو نائمة. التابع Kernel.set_trace_func: يجعل المعامل المعطى كمعالج للتعقب، أو يعطل التعقب إن كان الوسيط يساوي nil. مصادر قسم التابع add_trace_func في الصنف Thread في ...
المعامل [] في الصنف Proc.call في روبي
يستدعي المعامل [] الكتلة المرتبطة بالمتغير الذي استعمل معه مُعيِّنًا معاملات الكتلة إلى القيم المعطاة ضمنه باستخدام شيءٍ مشابهٍ لدلالات استدعاء التابع. يُعيد المعامل قيمة آخر تعبيرٍ قُيِّم في الكتلة. a_proc = Proc.new {|scalar, *values| values.map {|value| value*scalar } }
a_proc.call(9, 1, 2, 3) #=> [9, 18, 27]
a_proc[9, 1, 2, 3] #=> [9, 18, 27]
a_proc.(9, 1, 2, 3) #=> [9, 18, 27]
a_proc.yield(9, 1, ...
التابع Thread.set_trace_func في روبي
يجعل التابع set_trace_func الكائن proc معالجًا للتعقب (handler for tracing) في المهمة الفرعية، أو يعطل التعقب إن كان مُرِّرت القيمة nil بدلًا من ذلك الكائن. البنية العامة set_trace_func(proc) → proc
set_trace_func(nil) → nil
المعاملات proc كائن من النوع Proc. القيمة المعادة يعاد كائنٌ من النوع Proc. انظر أيضًا التابع Kernel.set_trace_func: يجعل المعامل المعطى كمعالج للتعقب، أو يعطل التعقب إن كان الوسيط يساوي nil. الصنف Proc. مصادر قسم التابع set_trace_func في الصنف Thread في توثيق روبي الرسمي.
التابع Hash.default في روبي
يضبط التابع default عند استدعائه بالشكل default = obj القيمة الافتراضية obj وهي القيمة التي ستُعاد لمفتاح غير موجود في الكائن Hash. لا يستطيع هذا التابع ضبط القيمة الافتراضية للعملية Proc التي ستُنفَّذ عند كل بحث عن مفتاح غير موجود. البنية العامة default = obj → obj
القيمة المعادة تعاد القيمة الافتراضية obj التي ستُعاد لمفتاح غير موجود في الكائن Hash المعطى بعد تعيينها. أمثلة مثال على استعمال التابع default: h = { "a" => 100, "b" => 200 }
h.default = ...
التابع set_trace_func الخاص بالصنف Kernel في روبي
يجعل التابع set_trace_func المعامل المعطى كمعالج للتعقب، أو يعطل التعقب إن كان الوسيط يساوي nil. ملاحظة: أصبح هذا التابع مهملًا، لذا يُرجى استخدام التابع TracePoint بدلاً منه. يقبل proc ستة معاملات هي: اسم حدث اسم ملف رقم سطر معرف كائن (object id) كائن ربط (binding) اسم صنف يستدعى proc كلما وقع حدث. الأحداث هي: الحدث الوصف c-call استدعاء برنامج فرعي في لغة C. c-return العودة من برنامج فرعي في لغة C. call استدعاء تابع من توابع روبي. class بدء تعريف ...
التابع proc الخاص بالصنف Kernel في روبي
يكافي التابع proc التعبير Proc.new. البنية العامة proc{ |...| block } → a_proc
القيمة المعادة يعاد كائن جديد من النوع Proc. انظر أيضا انظر صفحة الصنف Proc. مصادر قسم التابع proc في الصنف Kernel في توثيق روبي الرسمي.
التابع InstructionSequence.disasm في روبي
يأخذ التابع disasm كائنًا يمكن أن يكون من النوع Method أو من النوع Proc ويعيد سلسلة نصية تعليمات قابلة للقراءة لهذا المعامل المعطى. البنية العامة disasm(body) → str
disassemble(body) → str
المعاملات body كائن من النوع Method أو من النوع Proc. القيمة المعادة تعاد سلسلة نصية تحوي المعامل body على هيئة تعليمات قابلة للقراءة. أمثلة مثال على استخدام التابع disasm مع تمرير الكائن Method إليه: # /tmp/method.rb
def hello
puts "hello, world"
end
puts RubyVM::InstructionSequence.disasm(method(:hello))
الناتج سيكون: == disasm: <RubyVM::InstructionSequence:hello@/tmp/method.rb>============
0000 trace ...
التابع InstructionSequence.disassemble في روبي
يأخذ التابع disassemble المعامل body، والذي سيكون إما كائنًا من النوع Method، أو من النوع Proc، ثم يُعيد سلسلة نصية تحوي هذا المعامل على هيئة تعليمات قابلة للقراءة. البنية العامة disasm(body) → str
disassemble(body) → str
المعاملات body كائن من النوع Method أو من النوع Proc. القيمة المعادة تعاد سلسلة نصية تحوي محتوى المعامل body على هيئة تعليمات قابلة للقراءة. أمثلة مثال على استخدام التابع disassemble مع كائن من النوع Method: # /tmp/method.rb
def hello
puts "hello, world"
end
puts RubyVM::InstructionSequence.disasm(method(:hello))
الناتج سيكون: == disasm: ...
الوحدة ObjectSpace في روبي
تحتوي الوحدة ObjectSpace على مجموعةٍ من البرامج الفرعيَّة (routines) التي تتفاعل مع وسائل جمع المهملات وتسمح لك باجتياز جميع الكائنات النشطة مع مُكرَّر (iterator). تقدِّم الوحدة ObjectSpace الدَّعم أيضًا لمُنهِيَات كائنٍ (object finalizers) وكتل procs التي تُستدعى عندما يكون كائنٌ محدَّدٌ على وشك أن يُدمَّر عبر مجمِّع المهملات. require 'objspace'
a = "A"
b = "B"
ObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" })
ObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" })
ينتج عن تطبيق المثال السابق: Finalizer two on 537763470
Finalizer one on ...
المعامل === الخاص بالصنف Method في روبي
يستدعي المعامل === كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call. هذا يَسمح لكائنٍ من النوع proc أن يكون هدفًا للكتلة when في التعليمة case. البنية العامة proc === obj→ result_of_proc
القيمة المعادة تعاد نتيجة الوسيط proc. انظر أيضا التابع ==: يتحقق من تساوي كائنين من النوع Method. مصادر قسم التابع === في الصنف Method في توثيق روبي الرسمي.
التابع Symbol.to_proc في روبي
يعيد التابع to_proc كائنًا من النوع Proc، والذي يستجيب للتابع المعطى من قبل الرمز. البنية العامة to_proc
القيمة المعادة يعاد كائنٌ من النوع Proc. أمثلة مثال على استخدام التابع to_proc: (1..3).collect(&:to_s) #=> ["1", "2", "3"]
انظر أيضًا التابع to_s: يعيد الاسم أو السلسلة نصية التي تمثل الرمز مصادر قسم التابع to_proc في الصنف Symbol في توثيق روبي الرسمي.
التابع Method.to_proc في روبي
يعيد التابع to_proc الكائن Proc المقابل للكائن Method الذي استُدعي معه. البنية العامة to_proc → proc
القيمة المعادة يعاد كائنٌ من النوع Proc الذي يقابل الكائن Method المعطى. انظر أيضا التابع super_method: يعيد كائنًا من النوع Method للصنف الأب (superclass) للكائن Method الذي استدعي معه. التابع to_s: يعيد اسم التابع الأصلي (underlying method). مصادر قسم التابع to_proc في الصنف Method في توثيق روبي الرسمي.
التابع Marshal.restore في روبي
يعيد التابع restore نتيجة تحويل البيانات المُسلسلة (serialized) في المصدر إلى كائن روبي (ربما مع كائنات ثانوية [subordinate objects] مرتبطة به). قد يكون المصدر إما كائنًا من الصنف IO، أو كائنًا يستجيب إلى التابع to_str. في حال تمرير المعامل، فسيتم تمرير كل الكائنات إليه أثناء فك تسلسلها (deserialisation). تنبيه: لا تمرّر أبدًا إلى التابع restore بيانات غير موثوقة (بما في ذلك المدخلات التي يرسلها المستخدم). البنية العامة restore( source [, proc] ) → obj
المعاملات source إمَّا كائنٌ من الصنف IO، أو كائنٌ يستجيب إلى التابع to_str يمثل المصدر. proc ...
التابع Thread.new في روبي
ينشئ التابع new مهمة فرعية جديدة تنفّذ الكتلة المعطاة. البنية العامة new { ... }→ thread
new(*args, &proc)→ thread
new(*args) { |args| ... } → thread
سيتم تمرير كل المعاملات args الممررة إلى التابع new إلى الكتلة. سيُطلق الاستثناء ThreadError إذا تم استدعاء new دون كتلة. إذا كنت ترغب باشتقاق صنف فرعي (subclass) من Thread، تأكد من استدعاء المتغير super داخل التابع initialize، وإلا سيُطلق الاستثناء ThreadError. المعاملات args المعاملات التي يراد تمريرها إلى الكتلة. proc كائن من النوع Proc. القيمة المعادة تعاد مهمة ...
التابع lambda الخاص بالصنف Kernel في روبي
يكافئ التابع lambda التعبير Proc.new، باستثناء أنّ الكائنات Proc الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها. البنية العامة lambda { |...| block } → a_proc
القيمة المعادة يعاد ناتج الاستدعاء Proc.new. انظر أيضا الصنف Proc. مصادر قسم التابع lambda في الصنف Kernel في توثيق روبي الرسمي.
التابع Marshal.load في روبي
يعيد التابع load نتيجة تحويل البيانات المُسلسلة (serialized) في المصدر إلى كائن روبي (ربما مع كائنات ثانوية [subordinate objects] مرتبطة به). قد يكون المصدر إمَّا كائنًا من الصنف IO، أو كائنًا يستجيب إلى التابع to_str. في حال تمرير المعامل الثاني، فسيتم تمرير كل كائن من الكائنات إليه أثناء فك تسلسلها (deserialisation). تنبيه: لا تمرّر أبدًا إلى التابع load بيانات غير موثوقة (بما في ذلك المدخلات التي يرسلها المستخدم). البنية العامة load( source [, proc] ) → obj
المعاملات source إمَّا كائنٌ من ...
التابع call الخاص بالصنف Method في روبي
يستدعي call كتلة التابع الذي استٌدعي معه، ويضبط وسائط الكتلة عند القيم المُمرَّرة إليه باستخدام صياغة مشابهة لصياغة استدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أن prc.() يستدعي prc.call() مع تمرير المعاملات المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ->()، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc ، سيتم تجاهل المعاملات الإضافية ...
التابع trace_var الخاص بالصنف Kernel في روبي
يضبط (Controls) التابع trace_var تعقّبات (tracing) تعيين المتغيرات العامة. البنية العامة trace_var(symbol, cmd ) → nil
trace_var(symbol) {|val| block } → nil
يحدد الوسيط المعطى symbol المتغير (إمَّا على شكل سلسلة نصية أو معرف رمز [symbol identifier]). يتم تنفيذ الأمر cmd (الذي قد يكون سلسلةً نصيةً أو كائن من النوع Proc أو كتلةً برمجيةً) كلما تم تعيين المتغير ثم تتلقى الكتلة أو الكائن Proc القيمة الجديدة للمتغير كوسيط. المعاملات symbol يحدد المتغير. cmd التعليمة المراد تنفيذها كلما تم تعيين المتغير. القيمة المعادة ...
الصنف Method في روبي
يتم إنشاء كائنات الصنف Method بواسطة التابع Object.method، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن UnboundMethod) ثم ربطها بآخر. class Thing
def square(n)
n*n
end
end
thing = Thing.new
meth = thing.method(:square)
meth.call(9) #=> 81
[ 1, 2, 3 ...
المعامل [] الخاص بالصنف Method في روبي
يستدعي معامل الفهرسة [] الكتلة البرمجية للتابع، ويضبط قيم معاملات الكتلة عند القيم المعطاة ضمنه باستخدام صياغة مشابهة لاستدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أنَّ prc.() يستدعي prc.call() مع تمرير الوسائط المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ->()، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc، سيتم تجاهل المعاملات الإضافية بصمت، ...
التابع IO.close_on_exec= في روبي
يعين التابع close_on_exec عند استدعائه بالشكل close_on_exec = bool قيمة الراية close-on-exec إلى القيمة bool المنطقية. تعيّن روبي الرايات close-on-exec لكل واصفات الملفات (file descriptors) افتراضيًا منذ الإصدار 2.0.0. لذلك، لا تحتاج إلى تعيينها بنفسك. أضف إلى ذلك أنَّه قد يؤدي عدم ضبط الراية close-on-exec إلى حدوث تسرب لواصف الملف إن استخدمت مهمة فرعية أخرى التابعين fork() و exec() (عبر التابع system() على سبيل المثال). إن كنت بحاجة إلى توريث واصف الملفات في عملية فرعية (child process)، فاستخدم وسيط التابع spawn() ...
التابع at_exit الخاص بالصنف Kernel في روبي
يحول التابع at_exit الكتلة البرمجية المعطاة إلى كائن من النوع Proc (وبالتالي يربطه في لحظة الاستدعاء) ويسجله لأجل تنفيذه عند نهاية البرنامج. في حالة تسجيل عدة معالجات (handlers)، فستٌنفّذ بترتيب معاكس لتسجيلها. البنية العامة at_exit { block } → proc
القيمة المعادة يعاد كائن من النوع Proc. أمثلة مثال على استخدام التابع at_exit: def do_at_exit(str1)
at_exit { print str1 }
end
at_exit { puts "cruel world" }
do_at_exit("goodbye ")
exit
الناتج: goodbye cruel world
انظر أيضا التابع abort: ينهي التنفيذ على الفور عبر استدعاء Kernel.exit(false). ...
التابع exit الخاص بالصنف Kernel في روبي
يبدأ التابع exit عملية إنهاء البرنامج في روبي، عن طريق إطلاق استثناء SystemExit. من الممكن التقاط هذا الاستثناء. begin
exit
puts "never get here"
rescue SystemExit
puts "rescued a SystemExit exception"
end
puts "after begin block"
ينتج عند تنفيذه: rescued a SystemExit exception
after begin block
قبل الإنهاء مباشرة، تنفذ روبي كل التوابع والكتل المرتبطة بالشيفرة عبر التابع at_exit، وتنفِّذ كل الكائنات المُنهيَة (object finalizers، راجع ObjectSpace.define_finalizer). at_exit { puts "at_exit function" }
ObjectSpace.define_finalizer("string", proc { puts "in finalizer" })
exit
ينتج عند تنفيذ الشيفرة: ...
الصنف InstructionSequence في روبي
يمثل الصنف InstructionSequence تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي. يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها. هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات المُصرِّف iseq لروبي. يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة insns.defفي ...
الصنف SecurityError في روبي
يُطلق الاستثناء SecurityError عند محاولة تنفيذ عملية قد تكون غير آمنة؛ عادةً، يطلق عندما يُرفع مستوى $SAFE فوق 0: foo = "bar"
proc = Proc.new do
$SAFE = 3
foo.untaint
end
proc.call
سيطلق الاستثناء SecurityError بالشكل التالي عند تنفيذ هذه الشيفرة: SecurityError: Insecure: Insecure operation `untaint' at level 3
مصادر صفحة الصنف SecurityError في توثيق روبي الرسمي.
التابع Method.to_s في روبي
يعيد التابع to_s اسم التابع الأصلي (underlying method). البنية العامة to_s→ string
القيمة المعادة تعاد سلسلة نصية تمثِّل اسم التابع الأصلي. أمثلة مثال على استخدام التابع to_s: "cat".method(:count).inspect #=> "#<Method: String#count>"
انظر أيضا التابع to_proc: يعيد الكائنً Proc المقابل للكائن Method الذي استدعي معه. التابع unbind: يفك ارتباط الكائن Method من مُستقبِله (receiver) الحالي. مصادر قسم التابع to_s في الصنف Method في توثيق روبي الرسمي.
التابع Method.super_method في روبي
يعيد التابع super_method كائنًا من النوع Method للصنف الأب (superclass) للكائن Method الذي استدعي معه لاستدعائه عند استخدام super، أو يعيد nil إن لم يكن هناك تابع في الصنف الأب. البنية العامة super_method → method
القيمة المعادة يعاد كائن من النوع Method للصنف الأب للكائن Method المعطى، أو تعاد القيمة nil إن لم يكن هناك تابع في الصنف الأب. انظر أيضا التابع source_location: يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي هذا التابع، التابع to_proc: يعيد كائنًا من النوع Proc المقابل ...
التابع Thread.safe_level في روبي
يُعيد التابع safe_level المستوى الآمن للمهمة الفرعية. يمكن أن يساعد تعيين مستويات الأمان المحلية في المهمة الفرعية (thread-local safe levels) عند تنفيذ أكواد برمجية غير آمنة. البنية العامة safe_level→ integer
القيمة المعادة يعاد عدد صحيح يمثل المستوى الآمن للمهمة الفرعية. أمثلة مثال على استخدام التابع safe_level: thr = Thread.new { $SAFE = 1; sleep }
Thread.current.safe_level #=> 0
thr.safe_level #=> 1
انظر أيضًا التابع set_trace_func: يجعل الكائن proc معالجًا ...
التابع InstructionSequence.absolute_path في روبي
يُعيد التابع absolute_path المسار المطلق لسلسلة التعليمات المعطاة، أو يعيد القيمة nil إذا تم تقييم سلسلة التعليمات التي استُدعي معها انطلاقًا من سلسلة نصية. البنية العامة absolute_path()
القيمة المُعادة يُعيد التابع absolute_path المسار المطلق لسلسلة التعليمات. أمثلة مثال على استعمال التابع absolute_path مع استخدام التابع compile_file: # /tmp/method.rb
def hello
puts "hello, world"
end
# in irb
> iseq = RubyVM::InstructionSequence.compile_file('/tmp/method.rb')
> iseq.absolute_path #=> /tmp/method.rb
انظر أيضًا التابع of: يُعيد سلسلة التعليمات التي تحوي الكائن Proc أو Method المعطى. التابع base_label: يُعيد التسمية الأساسية (base label) لسلسلة التعليمات ...
التابع Object.define_finalizer في روبي
يضيف التابع define_finalizer كتلة aProc كمُنهِي (finalizer) ليُستدعى بعد تدمير الكائن. يُمرَّر معرِّف الكائن كوسيطٍ إلى الكتلة aProc. إذا كانت aProc تمثِّل تعبير lambda أو تابعًا، فتأكد أنَّه يمكن استدعائها بوسيطٍ واحد. البنية العامة define_finalizer(obj, aProc=proc())
المعاملات obj الكائن المراد إضافة تابع الإنهاء إليه. aProc يمثِّل هذا المعامل تعبير lambda أو تابعًا. انظر أيضًا التابع id2ref_: يُحوِل معرِّف الكائن إلى مرجعٍ للكائن. التابع count_objects: يُحصِي جميع الكائنات التي من نوعٍ واحد. التابع each_object: يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ ...
التابع Hash.default_proc في روبي
يضبط التابع default_proc إن استدعي بالشكل default_proc = proc_obj القيمة الافتراضية للكتلة التي ستُنفَّذ عند فشل أية عملية بحث عن مفتاح للكائن Hash المعطى. البنية العامة default_proc = proc_obj or nil
الأمثلة مثال على استعمال التابع default_proc: h.default_proc = proc do |hash, key|
hash[key] = key + key
end
h[2] #=> 4
h["cat"] #=> "catcat"
انظر أيضا التابع new: ينشئ التابع new جدول Hash جديد فارغ ثم يعيده. التابع default: يضبط عند استدعائه بالشكل default = obj القيمة الافتراضية obj ...
التابع Hash.default_proc في روبي
يعيد التابع default_proc الكتلة التي استُدعي التابع new معها عند إنشاء الكائن Hash المعطى، وإلا سيُعيد القيمة nil. البنية العامة default_proc → anObject
المعاملات القيمة المعادة تعاد الكتلة التي استُدعي التابع new معها عند إنشاء الكائن Hash المعطى، وإلا فستُعاد القيمة nil. أمثلة مثال على استعمال التابع default_proc: h = Hash.new {|h,k| h[k] = k*k } #=> {}
p = h.default_proc #=> #<Proc:0x401b3d08@-:1>
a = ...
التابع abort الخاص بالصنف Kernel في روبي
ينهي التابع abort تنفيذ العملية على الفور عبر استدعاء Kernel.exit(false). في حال تمرير رسالة إلى التابع، فستُكتَب في المجرى STDERR قبل الإنهاء. البنية العامة abort
Kernel::abort([msg])
abort([msg])
المعاملات msg الرسالة التي ستُكتب في المجرى STDERR. انظر أيضا التابع at_exit: يحول الكتلة البرمجية المعطاة إلى كائن من النوع Proc ويسجله لأجل تنفيذه عند نهاية البرنامج. مصادر قسم التابع abort في الصنف Kernel في توثيق روبي الرسمي.