نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف Binding في روبي
تُغلِّف كائنات الصنف Binding سياق التنفيذ (execution context) في مكان معين في الشيفرة البرمجية، وتحتفظ بذلك السياق لاستخدامه مستقبلًا. يُحتفَظ بالمتغيرات، والتوابع، وقيمة self، وربما كتلة المكرر (iterator block) وكل ما يمكن الوصول إليه في هذا السياق. يمكن إنشاء كائنات الصنف Binding باستخدام التابع Kernel.binding، واستدعاؤها بوساطة التابع Kernel.set_trace_func. يمكن تمرير كائنات الربط (binding objects) هذه كوسيط ثانٍ للتابع Kernel.eval لإنشاء بيئة للتقييم (evaluation). class Demo
def initialize(n)
@secret = n
end
def get_binding
...
الصنف Rational في روبي
يمكن تمثيل عدد جذري (rational) كزوج من الأعداد الصحيحة بالشكل a / b حيث b > 0؛ العدد a يمثل البسط، والعدد b يمثل المقام. من الناحية الرياضية، العدد الصحيح a يساوي العدد الجذري a / 1. في روبي، يمكنك إنشاء الكائنات (الأعداد) الجذرية باستخدام التوابع Kernel.Rational أو to_r أو rationalize، أو عن طريق إضافة المُبدِّل r إلى عددٍ. ستكون القيم المعادة كسورًا غير قابلة للاختزال (irreducible fractions). Rational(1) #=> (1/1)
Rational(2, 3) #=> ...
الصنف Interrupt في روبي
يُطلق الاستثناء Interrupt عند استقبال إشارة المقاطعة (interrupt signal)، عادةً لأن المستخدم ضغط على Ctrl-C (على معظم منصات POSIX). وعلى هذا النحو، فهو صنف فرعي من SignalException. begin
puts "Press ctrl-C when you get bored"
loop {}
rescue Interrupt => e
puts "Note: You will typically use Signal.trap instead."
end
ستُنتج عند تنفيذها: Press ctrl-C when you get bored
ثم انتظر إلى أن يُقاطع بالضغط على Ctrl-C، وحينها ستطبع المخرجات التالية: Note: You will typically use Signal.trap instead.
مصادر قسم الصنف ...
الصنف NameError في روبي
يُطلق الاستثناء NameError عندما يكون الاسم المعطى غير صالح أو غير مُعرّف. انظر إلى السطر البرمجي التالي: puts foo
سيُطلق عند تنفيذه الاستثناء التالي: NameError: undefined local variable or method `foo' for main:Object
أسماء الثوابت يجب أن تبدأ بحرف كبير، لذلك فالشيفرة البرمجية التالي: Integer.const_set :answer, 42
ستطلق الاستثناء NameError: NameError: wrong constant name answer
توابع الصنف العامة (Public Class Methods) new ينشئ استثناءً جديدًا من النوع NameError. توابع النسخة العامة (Public Instance Methods) local_variables يعيد قائمة بأسماء المتغيرات المحلية المُعرّفة حيث أُطلٍق ...
الصنف Thread في روبي
المهام الفرعية (Threads، وتدعى "الخيوط" أيضًا) هي الطريقة التي تنفذ بها روبي البرمجة المتزامنة (concurrent programming). البرامج التي تتطلب تنفيذ عدة مهام فرعية يمكنها استخدام الصنف Thread. على سبيل المثال، يمكننا إنشاء مهمة فرعية جديدة منفصلة عن المهمة الرئيسية باستخدام التابع new. thr = Thread.new { puts "Whats the big deal" }
ثم يمكننا إيقاف تنفيذ المهمة الفرعية الرئيسية مؤقتًا إلى حين إنتهاء المهمة الفرعية خاصتنا باستخدام التابع join: thr.join #=> "Whats the big deal"
في حال عدم استدعاء التابع join قبل ...
الصنف fatal في روبي
يُطلق الاستثناء fatal عندما تصادف روبي خطأ فادحًا (fatal error) بحيث يتوجب عليها إنهاء البرنامج فورًا، لأنه لا يمكن معالجة هذا الاستثناء. مصادر صفحة الصنف fatal في توثيق روبي الرسمي.
الصنف InstructionSequence في روبي
يمثل الصنف InstructionSequence تسلسلًا مصرّفًا (compiled sequence) للتعليمات الخاصة بالآلة الافتراضية (Virtual Machine) لروبي. يمكّنك هذا الصنف من الحصول على مؤشر (handle) للتعليمات التي تشكل التابع أو الكتلة البرمجية، وتصريف (compile) سلاسل روبي النصية إلى تعليمات الآلة الافتراضية (VM)، وتفكيك التعليمات إلى سلاسل نصية لتسهيل فحصها. هذا الصنف مفيد للغاية إن كنت ترغب في معرفة كيفية عمل آلة روبي الافتراضية، لكنه يتيح لك أيضًا التحكم في إعدادات المُصرِّف iseq لروبي. يمكنك العثور على مصدر إرشادات الآلة الافتراضية في الصفحة insns.defفي ...
الصنف Encoding في روبي
يمثل الصنف Encoding ترميز المحارف الذي يمكننا استخدامه في لغة روبي. تُعرَّف النّسخة المنشأة من الصنف Encoding بأنّها ثابتٌ (constant) يندرج ضمن مجال أسماء الصنف (encoding namespace)؛ يكون لها اسم، واسم بديل (Alias) اختياري. Encoding::ISO_8859_1.name
#=> "ISO-8859-1"
Encoding::ISO_8859_1.names
#=> ["ISO-8859-1", "ISO8859-1"]
التّوابع (methods) في لغة روبي التي تتعامل مع التّرميزات تعيد أو تقبل النسخ Encoding على شكل وسيط (عندما يقبل التّابع كائنًا على شكل وسيط، يمكن عندها أن نستخدم اسم أو لقب الترميز عوضًا عن الكائن). "some string".encoding
#=> #<Encoding:UTF-8>
string = "some string".encode(Encoding::ISO_8859_1)
#=> "some string"
string.encoding
#=> ...
الصنف String في روبي
السلاسل النصية (string) هي سلسلة تحتوي على حرف واحد أو أكثر وقد تحتوي على حروف أبجدية، مثل أرقام ورموز، ويكون كل حرف (أو رمز أو رقم) ممثلاً ببايت. السلاسل النصية في لغة البرمجة روبي عبارة عن كائنات (Objects)، وعلى عكس لغات البرمجة الأخرى، فإن النصوص قابلة للتغيير (Mutable) والتي تعني أننا نستطيع تعديل النصوص بدلًا من إنشاء نصوص جديدة. علامتا الاقتباس المزدوجتين والمفردتين يتم إنشاء السلاسل النصية (string) في لغة روبي باستعمال علامات الاقتباس المزدوجة (مثل "string") أو المفردة (مثل ...
الصنف Symbol في روبي
تمثل كائنات الصنف Symbol أسماء وسلاسل نصية داخل مترجم (interpreter) روبي. يمكن إنشاؤها باستخدام الصياغتين الحرفيتين :name و :"string"، أو بواسطة التوابع to_sym. سيتم إنشاء نفس الرمز (نفس الكائن Symbol) لاسم أو سلسلة نصية معينة طوال مدة تنفيذ البرنامج، بغض النظر عن السياق أو معنى هذا الاسم. وبالتالي، إن كان Fred ثابتًا في سياق معيّن، وتابعًا في سياق آخر، وصنفًا في سياق ثالث، فسيكون الرمز Symbol :Fred نفس الكائن في جميع السياقات الثلاث. module One
class Fred
end
...
الصنف RegexpError في روبي
يُطلق الاستثناء RangeError عند إعطاء تعبير نمطي غير صالح. إذا نفَّذنا السطر البرمجي التالي: Regexp.new("?")
فسيُطلَق الاستثناء RangeError بالشكل التالي: RegexpError: target of repeat operator is not specified: /?/
مصادر صفحة الصنف RegexpError في توثيق روبي الرسمي.
الصنف IO في روبي
الصنف IO هو أساس كل عمليات الإدخال والإخراج في روبي. مجرى الدخل/الخرج (I/O stream) قد يكون مزدوج الاتجاه (duplexed، أي في اتجاهين)، وبذلك قد يُستخدَم أكثر من مجرى واحد من مجاري نظام التشغيل. الكثير من الأمثلة الواردة في في هذا القسم تستخدم الصنف File، وهو االصنف الفرعي (subclass) القياسي الوحيد للصنف IO، إذ يرتبط الصنفان ارتباطًا وثيقًا. مثل الصنف File، فإنّ المكتبة Socket تشتق أصنافًا فرعيةً من الصنف IO (مثل TCPSocket أو UDPSocket). يمكن أن ينشئ التابع Kernel.open كائنات من ...
الصنف RubyVM في روبي
يمثل الصنف RubyVM الآلة الافتراضية (VM، اختصار إلى virtual machine). الثوابت DEFAULT_PARAMS يعرض هذا الثابت معاملات الآلة الافتراضية (VM) الأولية (default). لاحظ أنّ تغيير تلك القيم لا يؤثر على طريقة تشغيل الآلة الافتراضية. المواصفات ليست مستقرة، ويجب أن لا تعتمد على هذه القيمة. INSTRUCTION_NAMES يمثِّل هذا الثابت أسماء التعليمات. OPTS يحتوي هذا الثابت على خيارات الآلة الافتراضية (vm). توابع الصنف العامة stat يعيد كائنًا من النوع Hash يحوي عدادات مُخصصة (implementation-dependent counters) داخل الآلة الافتراضية (VM). مصادر صفحة الصنف RubyVM في توثيق روبي الرسمي. ...
الصنف SystemExit في روبي
يُطلق الاستثناء SystemExit من قبل التعليمة exit لبدء عملية إنهاء الشيفرة البرمجية. توابع الصنف العامة new يُنشئ استثناءً جديدًا من النوع SystemExit مع تحديد حالة ورسالة الاستثناء. توابع النسخة العامة status يعيد قيمة الحالة المرتبطة بالكائن SystemExit الذي استُدعي معه. success? يتحقق من نجاح عملية الإنهاء. مصادر صفحة الصنف SystemExit في توثيق روبي الرسمي.
الصنف MatchData في روبي
الصنف MatchData هو نوع المتغير الخاص $~ ، كما أنه نوع الكائنات المُعادة من Regexp.match و Regexp.last_match. فهو يغلف ويستوعب جميع نتائج التطابق مع تعبير نمطي. يمكن الوصول إلى النتائج من خلال المتغيرات الخاصة $& و $' و $ و $` و $1 و $2 وهكذا دواليك. توابع الصنف العامة (Public Class Methods) == يتحقق المعامل == من تطابق كائنان من النوع matchdata إذا كانت السلاسل النصية المستهدفة منهما، والأنماط ومواضع المُطابقة متماثلة. [] تتصرف الكائنات MatchData كمصفوفة، لذا يمكن الوصول إليها باستخدام تقنيات ...
الصنف IOError في روبي
يُطلق الاستثناء IOError عند فشل عملية إدخال/إخراج (IO operation) في روبي. File.open("/etc/hosts") {|f| f << "example"}
#=> IOError: not opened for writing
File.open("/etc/hosts") {|f| f.close; f.read }
#=> IOError: closed stream
تذكر أنَّ فشل بعض عمليات الإدخال/الإخراج قد يؤدي إلى إطلاق الاستثناء SystemCallError، وهذا الاستثناء ليس متفرع من الصنف IOError. File.open("does/not/exist")
#=> Errno::ENOENT: No such file or directory - does/not/exist
مصادر صفحة الصنف IOError في توثيق روبي الرسمي.
الصنف BasicObject في روبي
الصنف BasicObject هو الصنف الأب لجميع الأصناف في روبي، وهو صنف فارغ. يمكن استخدام الصنف BasicObject لإنشاء هرميات كائنية (object hierarchies) مستقلة عن الهرمية الكائنية للغة روبي، أو لإنشاء مغلفات الكائنات (proxy objects) مثل الصنف Delegator، أو حيث يجب تجنب إفساد مجال الأسماء (namespace pollution) من قبل توابع وأصناف روبي. لتجنب إفساد الصنف BasicObject للمستخدمين الآخرين، يجب إنشاء صنف فرعي من الصنف BasicObject تحت اسم مناسب بدلاً من تعديل BasicObject مباشرةً: class MyObjectSystem < BasicObject
end
لا يتضمَّن الصنف BasicObject الوحدة Kernel ...
الصنف SignalException في روبي
يًطللق الاستثناء SignalException عند تلقي إشارة ما. begin
Process.kill('HUP',Process.pid)
sleep # wait for receiver to handle signal sent by Process.kill
rescue SignalException => e
puts "received Exception #{e}"
end
سيُنتج عن تنفيذ هذه الشيفرة ما يلي: received Exception SIGHUP
توابع الصنف العامة new ينشئ كائنًا جديدًا من النوع SignalException. توابع النسخة العامة signo يعيد رقم إشارة. مصادر صفحة الصنف SignalException في توثيق روبي الرسمي.
الصنف FloatDomainError في روبي
يرمى الاستثناء FloatDomainError عند محاولة تحويل قيم عشرية خاصة (مثل القيمة Infinity أو NaN على وجه الخصوص) إلى أصناف رقمية لا تدعمها. Float::INFINITY.to_r #=> FloatDomainError: Infinity
مصادر صفحة الصنف FloatDomainError في توثيق روبي الرسمي.
الصنف StopIteration في روبي
يُطلق الاستثناء SecurityError لوقف عملية التكرار (iteration)، خصوصًا عبر التابع Enumerator.next. يُعالج هذا الاستثناء بالتابع Kernel.loop. loop do
puts "Hello"
raise StopIteration
puts "World"
end
puts "Done!"
سيُنتج: Hello
Done!
توابع النسخة العامة result يعيد القيمة المعادة من المُكرر (iterator). مصادر صفحة الصنف StopIteration في توثيق روبي الرسمي.
الصنف Location في روبي
تمثّل كائنات الصنف Location إطارات المكدس (stack frames)، وتُنشأ بواسطة التابع Kernel.caller_locations. إليك مثلًا الشيفرة التالية: # caller_locations.rb
def a(skip)
caller_locations(skip)
end
def b(skip)
a(skip)
end
def c(skip)
b(skip)
end
c(0..2).map do |call|
puts call.to_s
end
تشغيل الأمر ruby caller_locations.rb سوف ينتج: caller_locations.rb:2:in `a'
caller_locations.rb:5:in `b'
caller_locations.rb:8:in `c'
إليك مثالًا آخر بنتيجة مختلفة بعض الشيء: # foo.rb
class Foo
attr_accessor :locations
def initialize(skip)
@locations = caller_locations(skip)
end
end
Foo.new(0..2).locations.map do |call|
puts call.to_s
end
الآن، إن قمت بتنفيذ ruby foo.rb، فيجب أن ترى ...
الصنف NotImplementedError في روبي
يُطلق الاستثناء NotImplementedError عند عدم توفّر ميزة (feature) على نظام التشغيل الحالي. على سبيل المثال، قد تُطلِق التوابع التي تعتمد على استدعاء دالتي النظام fsync أو fork هذا الاستثناء إن كانتا غير مدعومتين على نظام التشغيل أو بيئة تشغيل روبي آنذاك. لاحظ أنه إن أطلقت الدالة fork الاستثناء NotImplementedError، فسيعيد التابع respond_to?(:fork) القيمة false. مصادر قسم الصنف NotImplementedError في توثيق روبي الرسمي.
الصنف Integer في روبي
يمثل الصنف Integer الأعداد الصحيحة. لا يمكن إضافة تابع أحادي (singleton method) إلى كائن من الصنف Integer، وأي محاولة لفعل ذلك ستؤدي إلى إطلاق الخطأ TypeError. الثوابت (Constants) GMP_VERSION يمثِّل النسخة GMP المُحمّلة. توابع الصنف العامة (Public Class Methods) sqrt يعيد التابع sqrt الجذر التربيعي الصحيح للعدد الصحيح الموجب المُمرر إليه. توابع الكائن العامة (Public Instance Methods) % يعيد المعامل % باقي عملية القسمة الصحيحة بين عددين. & ينفذ المعامل & العملية AND بين بتات العددين المعطيين. * يعيد المعامل * ناتج عملية الضرب بين عددين. ** يعيد المعامل ** ناتج ...
الصنف Binding في روبي
تُغلِّف كائنات الصنف Binding سياق التنفيذ (execution context) في مكان معين في الشيفرة البرمجية، وتحتفظ بذلك السياق لاستخدامه مستقبلًا. يُحتفَظ بالمتغيرات، والتوابع، وقيمة self، وربما كتلة المكرر (iterator block) وكل ما يمكن الوصول إليه في هذا السياق. يمكن إنشاء كائنات الصنف Binding باستخدام التابع Kernel.binding، واستدعاؤها بوساطة التابع Kernel.set_trace_func. يمكن تمرير كائنات الربط (binding objects) هذه كوسيط ثانٍ للتابع Kernel.eval لإنشاء بيئة للتقييم (evaluation). class Demo
def initialize(n)
@secret = n
end
def get_binding
...
الصنف SystemStackError في روبي
يُطلق الاستثناء SystemExit في حال امتلاء المُكدس (stack overflow). def me_myself_and_i
me_myself_and_i
end
me_myself_and_i
عند تنفيذ هذه الشيفرة، سيُطلق استثناء بالشكل التالي: SystemStackError: stack level too deep
مصادر صفحة الصنف SystemStackError في توثيق روبي الرسمي.
الصنف Struct في روبي
يُعدُّ استخدام الصنف Struct طريقةً ملائمةً لتجميع مجموعة من الخاصيات (attributes) معًا، باستخدام مداخل (accessor methods) دون الحاجة إلى كتابة صنف جديد. يُنشئ الصنف Struct أصنافًا فرعيةً (subclasses) جديدةً تحمل مجموعة من الأعضاء مقرونة بقيمها. لكل عضو يتم إنشاء قارئ (reader method) وكاتب (writer method) مشابهين للتابع Module.attr_accessor. Customer = Struct.new(:name, :address) do
def greeting
"Hello #{name}!"
end
end
dave = Customer.new("Dave", "123 Main")
dave.name #=> "Dave"
dave.greeting #=> "Hello Dave!"
راجع صفحة التابع new ...
الصنف Kernel في روبي
تُضمَّن الوحدة Kernel من طرف الصنف Object، لذلك فتوابعها متاحة في كل كائنات روبي. توابع نسخ الصنف Kernel مُوثّقة في صفحة الصنف Object، أما توابع الوحدة Kernel فهي مُوثقة هنا. تستدعى هذه التوابع بدون مستقبل (receiver)، وبالتالي يمكن استدعاؤها وفق الشكل الدالي: sprintf "%.1f", 1.234 #=> "1.2"
توابع الصنف العامة (Public Class Methods) Array يعيد المعامل الممرَّر إليه على شكل مصفوفة (Array). Complex يعيد ناتج التعبير x + i * y؛ حيث i هو الوحدة التخيلية للعدد العقدي. Float Hash يعيد ناتج التعبير x + ...
الصنف Float في روبي
تمثِّل كائنات الصنف Float أعدادًا حقيقيةً غير دقيقة (inexact real numbers) باستخدام التمثيل العشري ذي الدقة المضاعفة للبنية الأصلية. للمنازل العشرية حساب مختلف وهو عدد غير دقيق، لذا يجب معرفة نظامها الخاص. نقترخ عليك الاطلاع على الصفحات التالية: ما هي الأشياء التي يجب أن يعرفها كل عالم حاسوب عن الأعداد العشرية. لماذا الأعداد العشرية في روبي غير دقيقة؟ مشاكل في الدقة. الثوابت DIG الحد الأدنى لعدد الأرقام العشرية ذات الدلالة في المنازل العشرية المزدوجة الدقة. وعادةً ما تكون قيمته الافتراضية ...
الصنف NoMemoryError في روبي
يُطلق الاستثناء NoMemoryError عند الفشل في حجز جزءٍ من الذاكرة. مصادر قسم الصنف NoMemoryError في توثيق روبي الرسمي.
الصنف Numeric في روبي
الصنف Numeric هو الصنف الذي يجب أن ترثه كل الأصناف العددية عالية المستوى. يسمح الصنف Numeric بتمثيل (instantiation) الكائنات المحجوزة في الكومة (heap-allocated objects). تُنفَّذ الأصناف العددية الأساسية الأخرى، مثل Integer، كأصناف آنيَّة، أي أنّ كل عدد صحيح هو كائن غير قابل للتغيير (immutable)، والذي يُمرَّر دائمًا بقيمته. اطلع على المثال التالي: a = 1
1.object_id == a.object_id #=> true
لا يمكن أن يكون هناك إلا نسخة (instance) واحدة فقط من العدد الصحيح 1. تضمن روبي بهذا منع إنشاء نسخ ...
الصنف LoadError في روبي
يُطلق الاستثناء LoadError عند فشل تحميل الملف المطلوب (شيفرة روبي، مكتبة ملحقة، ...إلخ.). require 'this/file/does/not/exist'
الشيفرة أعلاه ستطلق الاستثناء التالي: LoadError: no such file to load -- this/file/does/not/exist
تمثل الخاصية path مسار الملف الذي فشلت روبي في تحميله. مصادر قسم الصنف LoadError في توثيق روبي الرسمي.
الصنف FiberError في روبي
يُرمى الاستثناء FiberError عند محاولة إجراء عمليّةٌ غير صحيحةٍ في الصنف Fiber، تحديدًا عند محاولة استدعاء/استئناف ليف ميِّت، أو محاولة التّوليد من الليف الجذر (root fiber)، أو استدعاء ليفٍ عبر خيوطٍ (threads). fiber = Fiber.new{}
fiber.resume #=> nil
fiber.resume #=> FiberError: dead fiber called
مصادر صفحة الصنف FiberError في توثيق روبي الرسمي.
الصنف LocalJumpError في روبي
يُطلق الخطأ LocalJumpError عندما لا تتمكن روبي من الإعادة (yield) كما هو مطلوب. يحدث هذا مثلًا، عند محاولة الإعادة (yield) في غياب أية كتلة برمجية. def call_block
yield 42
end
call_block
تطلق الشيفرة أعلاه الاستثناء التالي: LocalJumpError: no block given (yield)
توابع الكائن العامة (Public Instance Methods) exit_value يعيد قيمة الخروج المرتبطة بالاستثناء LocalJumpError. reason يعيد سبب إنهاء الكتلة البرمجية: :breakأو :redo أو :retry أو :next أو :returnأو :noreason. مصادر قسم الصنف LocalJumpError في توثيق روبي الرسمي.
الصنف 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 ...
الصنف SystemCallError في روبي
يعتبر الصنف SystemCallError الصنف الأب لكل أصناف الأخطاء منخفضة المستوى المرتبطة بنظام التشغيل. الأخطاء المتوفرة على نظام التشغيل الحالي هي أصناف فرعية من الصنف SystemCallErrorـ وهي مُعرّفة في الوحدة Errno. File.open("does/not/exist")
عند تنفيذ هذا السطر البرمجي، سيطلق استثناء بالشكل التالي: Errno::ENOENT: No such file or directory - does/not/exist
توابع الصنف العامة (Public Class Methods) === يتحقق إن كان الاستثناء الذي استُدعي معه كائنًا عامًا من الصنف SystemCallError، أو إن كان رقما الخطأ الخاصين بهذا الاستثناء والاستثناء الآخر المعطى متساويين. new ...
الصنف Continuation في روبي
تُولّد الكائنات Continuation بواسطة التابع Kernel.callcc بعد استيراد continuation عبر require. تحمل هذه الكائنات عنوان العودة (return address) وسياق التنفيذ (execution context)، مما يتيح العودة إلى نهاية الكتلة callcc من أي مكان في البرنامج. كائنات الصنف Continuation مشابهة لحد ما البنية setjmp/longjmp في لغة C (على الرغم من أنَّها تحتوي على حالات أكثر، لذلك يمكن اعتبارها أقرب إلى المهام الفرعية [threads]). على سبيل المثال: require "continuation"
arr = [ "Freddie", "Herbie", "Ron", "Max", "Ringo" ]
callcc{|cc| $cc = cc}
puts(message = arr.shift)
$cc.call unless message ...
الصنف ZeroDivisionErro في روبي
يُطلق الاستثناء ZeroDivisionErro عند محاولة تقسيم عدد على 0. 42 / 0 #=> ZeroDivisionError: divided by 0
لاحظ أنه لن يُطلق هذا الاستثناء إلا عند محاولة القسمة على العدد صفر بالضبط (أي القيمة 0 وليس 0.0 مثلًا). اطلع على المثال التالي الذي يشرح ذلك: 42 / 0.0 #=> Float::INFINITY
42 / -0.0 #=> -Float::INFINITY
0 / 0.0 #=> NaN
مصادر صفحة الصنف ZeroDivisionErro في توثيق روبي الرسمي.
الصنف 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 في توثيق روبي الرسمي.
الصنف ZeroDivisionError في روبي
يرمى الاستثناء ZeroDivisionError عند محاولة تقسيم عدد صحيح على الصفر. 42 / 0 #=> ZeroDivisionError: divided by 0
لاحظ أنَّ القسمة على القيمة 0 بالضبط (وليس القيمة 0.0 أو 0.0- مثلًا) سيؤدي إلى رمي الاستثناء ZeroDivisionError فقط. إليك المثال التالي: 42 / 0.0 #=> Float::INFINITY
42 / -0.0 #=> -Float::INFINITY
0 / 0.0 #=> NaN
مصادر صفحة الصنف ZeroDivisionError في توثيق روبي الرسمي.
الصنف ScriptError في روبي
الصنف ScriptError هو الصنف الأب (superclass) لأصناف الأخطاء التي تُطلق عندما لا يمكن تنفيذ الشيفرة بسبب إحدى الأخطاء التالية: LoadError أو NotImplementedError أو SyntaxError. لاحظ أنَّ النوع ScriptError من أخطاء ليست قياسية (أي ليست من الأخطاء StandardError)، ولن تتم معالجتها ما لم يتم تحديدها بشكل صريح (أو تحديد صنفها الأب Exception). مصادر صفحة الصنف ScriptError في توثيق روبي الرسمي.
الصنف UncaughtThrowError في روبي
يُطلق الاستثناء UncaughtThrowError عندما يتم استدعاء throw مع وسم (tag) لا يحتوي على الكتلة catch المقابلة. throw "foo", "bar"
عند تنفيذ هذا السطر من الشيفرة، يطلق استثناء بالشكل: UncaughtThrowError: uncaught throw "foo"
توابع الصنف العامة new ينشئ كائنًا جديدًا من النوع UncaughtThrowError. توابع النسخة العامة tag يعيد كائن الوسم (tag object) الذي استُدعي معه. to_s يعيد رسالة منسقة تحتوي الوسم (tag). value يعيد القيمة المعادة من الوسم الذي استدعي معه. مصادر صفحة الصنف UncaughtThrowError في توثيق روبي الرسمي.
الصنف Exception في روبي
تُستخدَم الكائنات السليلة من الصنف Exception للتواصل بين التّابع Kernel.raise وتصريحات rescue في الكتل (blocks) من الشكل begin...end. تَحمل كائنات الصنف Exception معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية. قد تضيف الأصناف الفرعية من الصنف Exception معلوماتٍ إضافيّةٍ مثل NameError.name. قد تُنشِئ البرامج أصنافًا فرعيّةً (subclasses) من الصنف Exception، تكون عادةً StandardError أو RuntimeError، لتوفير أصنافٍ مخصصّةٍ وإضافة معلوماتٍ إضافية. ألقِ نظرةً على قائمة الأصناف الفرعية في الأسفل من أجل قيم ...
الصنف Signal في روبي
تسمح العديد من أنظمة التشغيل بإرسال إشارات إلى العمليات (processes) قيد التشغيل للتحكم بها. بعض الإشارات لها تأثير محدد على العملية، بينما تكون أخرى مرتبطة بالشيفرة البرمجية، وتتصرف بناء عليها. على سبيل المثال، قد تقوم العملية بإمساك (trap) الإشارة USR1 واستخدامها في عملية التنقيح (debugging)، أو قد تُستخدَم الإشارة TERM لبدء إيقاف تشغيل العملية بشكل مُراقَب. pid = fork do
Signal.trap("USR1") do
$debug = !$debug
puts "Debug now: #$debug"
end
Signal.trap("TERM") ...
الصنف SizedQueue في روبي
يمثل هذا الصنف طوابيرًا (queues) ذات أحجام سعة محددة. قد تُعطّل العملية push إن كانت السعة لطابور ما ممتلئة. راجع صفحة Queue للحصول على أمثلة حول كيفية عمل الصنف SizedQueue. توابع الصنف العامة new ينشئ طابورًا ذا طول ثابت. توابع النسخة العامة << يضيف كائنات إلى الطابور المعطى. clear يزيل كل الكائنات من الطابور. close يغلق الطابور الذي استدعي معه. deq هو اسم بديل للتابع pop. empty? يتحقق إن كان الطابور فارغًا. enq هو اسم بديل للتابع push. length يعيد حجم الطابور ...
الصنف Enumerator في روبي
الصنف Enumerator هو صنفٌ يسمح بتنفيذ عملية التكرار الداخلي والخارجي على الكائنات. يمكن إنشاء كائنات من هذا الصنف باستعمال إحدى التوابع التالية: Kernel.to_enum، أو Kernel.enum_for، أو new. أغلب التوابع في هذا الصنف تملك شكلين هما: الشكل الكتلي (block form) الذي تقيَّم فيه المحتويات لكل عنصر في المجموعة التعدادية، والشكل الغير كتلي (non-block form) الذي يعيد كائنًا جديدًا من النوع Enumerator يغلِّف التكرار. enumerator = %w(one two three).each
puts enumerator.class # => Enumerator
enumerator.each_with_object("foo") do |item, obj|
puts "#{obj}: #{item}"
end
# foo: one
# ...
الصنف Time في روبي
الصنف Time هو تجريد لمفهومي التاريخ والوقت. يتم تخزين Time داخليا كعدد الثواني (مع كسورها) منذ توقيت يونيكس (1 يناير 1970 00:00 بالتوقيت العالمي). انظر أيضًا الوحدة Date لمزيد من المعلومات. يعامِل الصنف Time توقيت جرينتش (GMT، اختصار للعبارة Greenwich Mean Time) والتوقيت العالمي الموحد (UTC، اختصار للعبارة Universal Time Coordinated) على أنهما متكافئان. توقيت جرينتش هو الطريقة الأقدم للإشارة إلى هذه الأوقات المرجعية، ولا تزال موجودة في أسماء الاستدعاءات على أنظمة POSIX. يمكن أن يكون لجميع الأوقات كسور. انتبه لهذا ...
الصنف Mutex في روبي
يمكن استخدام الصنف Mutex وكائناته كواجهة لتنسيق الوصول إلى البيانات المشتركة من عدة خيوط (threads) موجودة وتعمل في نفس الوقت. إليك هذا المثال: semaphore = Mutex.new
a = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
b = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
توابع الصنف العامة (Public Class Methods) new ينشئ كائنًا جديدًا من النوع Mutex. توابع النسخة العامة (Public Instance Methods) lock يحاول مسك القفل (grab ...
الصنف Hash في روبي
النوع Hash (أو الجدول Hash كما يطلق عليه أحيانًا) هو مجموعة تشبه القاموس ويتكون من مفاتيح فريدة وقيم مرتبطة بها. كما يسمى أيضًا المصفوفات الترابطية، فهو يشبه المصفوفات، ولكن بينما تستخدم المصفوفة فقط الأعداد الصحيحة كفهرس، يسمح النوع Hash باستخدام أيٍّ من أنواع الكائنات لاستعمالها كفهرس وربطها بقيمٍ. ترتَّب وتحصى القيم في النوع Hash بنفس الترتيب الذي أُدرِجت فيه مفاتيحها المقابلة. يمكن إنشاء جدول Hash بسهولة باستخدام شكله الصريح: grades = { "Jane Doe" => 10, "Jim Doe" => 6 ...
الصنف FalseClass في روبي
القيمة false العامة (global) هي النسخة الوحيدة من الصنف FalseClass وتمثِّل قيمة الخطأ (false) في التعابير المنطقية (boolean expressions). يوفر هذا الصنف معاملات تسمح للقيمة false بالمساهمة بشكل صحيح في التعابير المنطقية. توابع الكائن العامة (Public Instance Methods) المعامل & يجري المعامل & العملية AND المنطقية بين القيمة false والكائن المعطى ثم يُعيد القيمة false. المعامل === يتحقق المعامل === من تساوي كائنين بشكل صارم. المعامل ^ يجري المعامل ^ العملية XOR المنطقية بين القيمة false وقيمة الكائن المعطى. inspect ...
الصنف ArgumentError في روبي
يُطلق الاستثناء ArgumentError عندما تكون الوسائط (arguments) غير صالحة، ولا يكون هناك صنف Exception أكثر تحديدًا. تفحَّص المثال التالي الذي يشرح حالة تمرير عدد غير مناسب من الوسائط: [1, 2, 3].first(4, 5)
سيُطلق عند تنفيذ هذه الشيفرة الاستثناء ArgumentError: ArgumentError: wrong number of arguments (given 2, expected 1)
أما المثال التالي، فيشرح حالة تمرير وسيط غير مقبول: [1, 2, 3].first(-4)
سيُطلق عند تنفيذ هذه الشيفرة الاستثناء ArgumentError: ArgumentError: negative array size
مصادر صفحة ArgumentError في التوثيق الرسمي للغة ruby
عرض (50 السابقة | 50 التالية) (20 | 50 | 100 | 250 | 500).