نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف MatchData في روبي
الصنف MatchData هو نوع المتغير الخاص $~ ، كما أنه نوع الكائنات المُعادة من Regexp.match و Regexp.last_match. فهو يغلف ويستوعب جميع نتائج التطابق مع تعبير نمطي. يمكن الوصول إلى النتائج من خلال المتغيرات الخاصة $& و $' و $ و $` و $1 و $2 وهكذا دواليك. توابع الصنف العامة (Public Class Methods) == يتحقق المعامل == من تطابق كائنان من النوع matchdata إذا كانت السلاسل النصية المستهدفة منهما، والأنماط ومواضع المُطابقة متماثلة. [] تتصرف الكائنات MatchData كمصفوفة، لذا يمكن الوصول إليها باستخدام تقنيات ...
المعامل == الخاص بالصنف MatchData في روبي
يتحقق المعامل == من تطابق كائنان من النوع matchdata إذا كانت السلاسل النصية المستهدفة منهما، والأنماط ومواضع المُطابقة متماثلة. البنية العامة mtch == mtch2→ true or false
المعاملات mtch الطرف الأول في عملية الموازنة. mtch2 الطرف الثاني في عملية الموازنة. القيمة المعادة تعاد القيمة true إن كان الكائنان متساويان، وإلا فستُعاد القيمة false. انظر أيضا التابع eql?: يتحقق من تساوي كائنين من النوع matchdata. مصادر قسم المعامل == في الصنف MatchData في توثيق روبي الرسمي.
التابع Regexp.match في روبي
يُعيد التابع match كائنًا من النوع MatchData يصف المطابقة بين تعبير نمطي وسلسلة نصية، أو يعيد القيمة nil إذا لم يكن هناك تطابق. هذا يُكافئ استرداد قيمة المتغير الخاص $~ بعد تنفيذ عملية مطابقة عادية. في حال تمرير المعامل الثاني، فسيحدد موضع البدء في السلسلة النصية. /(.)(.)(.)/.match("abc")[2] #=> "b"
/(.)(.)/.match("abc", 1)[2] #=> "c"
في حال تمرير كتلة، فسيستدعي الكتلة باستخدام MatchData إذا نجحت المطابقة، وهكذا يمكنك كتابة: /M(.*)/.match("Matz") do |m|
puts m[0]
puts m[1]
end
بدلًا من: ...
التابع Regexp.last_match في روبي
يُعيد التابع last_match إن لم يمرَّر إليه أي شيء كائنًا من النوع MatchData الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. وهو مكافئ لقراءة المتغير العام $~ (راجع قسم المتغيرات العامة المخصصة في صفحة Regexp لمزيد من التفاصيل). أمَّا إن مرِّر إلى التابع last_match عدد n، فسيعيد المطابقة ذات الرقم n في الكائن MatchData. يمكن أن يكون n عبارة عن سلسلة نصية أو رمزًا للإشارة إلى الالتقاط المسمى (named capture). لاحظ أن last_match هو متغير محلي في مدى (scope) التابع ...
التابع Symbol.match في روبي
يعيد التابع match ناتج التعبير sym.to_s.match. البنية العامة match(pattern) → matchdata or nil
match(pattern, pos)→ matchdata or nil
المعاملات pattern نمط يراد به مطابقة الرمز المعطى. pos موضع بدء عملية المطابقة. القيمة المعادة يعاد كائنٌ من النوع Matchdata يحوي نتائج التطابق. انظر أيضًا التابع match?: يعيد ناتج التعبير sym.to_s.match?. مصادر قسم التابع match في الصنف Symbol في توثيق روبي الرسمي.
التابع String.match في روبي
يحول التابع match النمط المُمرَّر إليه إلى تعبير نمطي (إن لم يكن كذلك) ثم يطابقه مع السلسلة النصية التي استدعيت معه. البنية العامة match(pattern) → matchdata or nil
match(pattern, pos) → matchdata or nil
إن أعطيت كتلة، فستُستدعَى مع الكائن MatchData المعاد إن نجحت عملية المطابقة، وبذلك يمكننا كتابة: str.match(pat) {|m| ...}
بدلًا من: if m = str.match(pat)
...
end
وستكون القيمة المعادة هي القيمة التي تعيدها الكتلة بعد انتهاء تنفيذها في هذه الحالة. المعاملات pattern التعبير النمطي المراد مطابقته للسلسلة النصية المعطاة. إن ...
معامل الفهرسة [] الخاص بالصنف MatchData في روبي
تتصرف الكائنات MatchData بشكل مشابه للمصفوفات، إذ يمكن الوصول إليها باستخدام تقنيات فهرسة المصفوفات العادية. التعبير mtch[0] مكافئ للمتغير الخاص $&، لذلك فهو يعيد كامل السلسلة النصية المُطابقة بينما تعيد التعابير mtch[1] و mtch[2] ...إلخ. قيم العناصر المتطابقة سابقًا (تدعى "المراجع الخلفية" [backreferences]) من أجزاء النمط الموجودة بين قوسين. البنية العامة mtch[i]→ str or nil
mtch[start, length]→ array
mtch[range] → array
mtch[name]→ str or nil
القيمة المعادة يعيد التعبير mtch[0] كامل السلسلة النصية المُطابقة بينما تعيد التعابير mtch[1] و mtch[2] ...إلخ. قيم ...
التابع MatchData.eql? في روبي
يتحقق التابع eql? من تساوي كائنين من النوع matchdata، إذ يعيد القيمة true إذا كانت السلاسل النصية المستهدفة منهما، والأنماط ومواضع المُطابقة متماثلة. البنية العامة eql?(mtch2)→ true or false
المعاملات mtch2 الطرف الثاني في عملية الموازنة. القيمة المعادة تعاد القيمة true إذا كان الكائنان المتطابقان الموازنة بينهما متساويين، وإلا فستُعاد القيمة false. انظر أيضا المعامل==: يتحقق من تطابق كائنان من النوع matchdata إذا كانت السلاسل النصية المستهدفة منهما، والأنماط ومواضع المُطابقة متماثلة. مصادر قسم التابع eql? في الصنف MatchData في توثيق روبي ...
التابع MatchData.hash في روبي
يعيد التابع hash القيمة hash اعتمادًا على السلسلة النصية المستهدفة والتعبير النمطي (regexp) ومواضع المطابقة للكائن matchdata. البنية العامة hash→ integer
القيمة المعادة يعاد عدد صحيح يمثِّل القيمة hash. انظر أيضا التابع inspect: يعيد نسخة قابلة للطباعة من mtch. التابع hash: يعيد القيمة hash للكائن الذي استدعي معه. مصادر قسم التابع hash في الصنف MatchData في توثيق روبي الرسمي.
التابع MatchData.inspect في روبي
يعيد التابع inspect نسخة قابلة للطباعة من الكائن الذي استُدعي معه. البنية العامة inspect→ str
القيمة المعادة تعاد سلسلة نصية تمثِّل نسخةً قابلةً للطباعة من الكائن MatchData المعطى. أمثلة مثال على استخدام التابع inspect: puts /.$/.match("foo").inspect
#=> #<MatchData "o">
puts /(.)(.)(.)/.match("foo").inspect
#=> #<MatchData "foo" 1:"f" 2:"o" 3:"o">
puts /(.)(.)?(.)/.match("fo").inspect
#=> #<MatchData "fo" 1:"f" 2:nil 3:"o">
puts /(?<foo>.)(?<bar>.)(?<baz>.)/.match("hoge").inspect
#=> #<MatchData "hog" foo:"h" bar:"o" baz:"g">
انظر أيضا التابع length: يعيد عدد العناصر في مجموعة المطابقة. مصادر قسم التابع inspect في الصنف MatchData في توثيق روبي الرسمي.
التابع Regexp.inspect في روبي
يعيد التابع inspect نسخة نصية منسقة من التعبير النمطي الذي استُدعي معه. قد يكون من المفاجئ أن تعلم أن inspect ينتج في الواقع نسخة نصية طبيعية أكثر حتى من التابع to_s. البنية العامة inspect→ string
القيمة المعادة تعاد سلسلة نصية منسقة من التعبير النمطي المعطى. أمثلة مثال على استخدام التابع inspect: /ab+c/ix.inspect #=> "/ab+c/ix"
انظر أيضًا التابع hash: يحسب الشيفرة hash استنادًا إلى القيمة النصية وخيارات التعبير النطامي الذي استدعي معه. التابع match: يُعيد كائنًا من ...
المعامل ~ الخاص بالصنف Regexp في روبي
يبحث المعامل ~ عن مطابقة التعبير النمطي الذي استُدعي معه في محتويات المتغير $_. وهو مُكافئ للتعبير rxp =~ $_. البنية العامة ~ rxp→ integer or nil
القيمة المعادة يعاد موضع المطابقة الأولى بين التعبير النمطي المعطى ومحتوى المتغير $_. أمثلة مثال على استخدام المعامل ~: $_ = "input data"
~ /at/ #=> 7
انظر أيضا التابع match: يُعيد كائنًا من النوع MatchData يصف المطابقة، أو يعيد nil إذا لم يكن هناك تطابق. مصادر قسم المعامل ~ في الصنف Regexp في توثيق روبي الرسمي.
التابع Regexp.match? في روبي
يتحقق التابع match? ما إذا كان التعبير النمطي المعطى قد تطابق (matched) أم لا دون تحديث المتغير $~ والمتغيرات الأخرى ذات الصلة. في حال إعطاء الوسيط الثاني، فسيحدد موضع بدء البحث والمطابقة في السلسلة النصية المعطاة. البنية العامة match?(str) → true or false
match?(str,pos)→ true or false
المعاملات str سلسلة نصية يراد التحقق من مطابقتها مع التعبير النمطي المعطى. pos موضع بدء البحث والمطابقة. القيمة المعادة تعاد القيمة true أو القيمة false بحسب ما إذا كان التعبير النمطي المعطى قد تطابق أم ...
التابع Regexp.new في روبي
ينشئ التابع new تعبيرًا نمطيًّا جديدًا من النمط المُمرَّر إليه، والذي يمكن أن يكون إما سلسلة نصية أو كائنًا من النوع Regexp (وفي هذه الحالة يتم نشر خيارات التعبير النمطي)؛ وقد لا يتم تحديد الخيارات الجديدة (منذ روبي 1.8). البنية العامة new(string, [options]) → regexp
new(regexp)→ regexp
compile(string, [options])→ regexp
compile(regexp) → regexp
المعاملات string سلسلة نصية. options الخيارات التي تتحكم بالتعبير النمطي. إن كان المعامل options عددًا صحيحًا، فيجب أن يساوي واحدًا أو أكثر من الثوابت التالية: Regexp::EXTENDED أو Regexp::IGNORECASE أو Regexp::MULTILINE، ...
التابع Marshal.dump في روبي
يُسلسل (Serializes) التابع dump الكائن المعطى وجميع الكائنات المنحدرة منه (descendant objects). في حال تمرير كائن من النوع IO، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية. البنية العامة dump( obj [, anIO] , limit=-1 ) → anIO
في حال تمرير المعامل limit، فسيقتصر التابع dump على سَلسَلة الكائنات الفرعية حتى العمق المحدد. إذا كان limit سالبًا، لن يكون هناك أي تحقق من للعمق. لا يمكن للتابع Marshal تفريغ (dump) الكائنات التالية: الوحدات أو الأصناف المجهولة (anonymous Class/Module). الكائنات المرتبطة بالنظام (مثل ...
الصنف Regexp في روبي
تمثل كائنات الصنف Regexp التعابير النمطية التي تُستخدم لمطابقة نمط (pattern) معيّن في سلسلة نصية. تُنشَأ التعابير النمطية باستخدام الصياغتين /.../ و %r{...}، أو باستعمال الباني new. التعابير النمطية هي أنماط تصف محتويات السلسلة النصية. يمكن استخدامها للتحقق من أنّ سلسلة نصية تحتوي على نمط معين، أو لاستخراج الأجزاء المُطابقة منها. عادةً ما يتم تحديد التعبير النمطي بخط مائل (/) كما يوضح المثال التالي: /hay/ =~ 'haystack' #=> 0
/y/.match('haystack') #=> #<MatchData "y">
إذا احتوت سلسلة نصية على النمط، فسيقال ...
المعامل [] الخاص بالصنف String في روبي
يبدِّل المعامل [] عند استدعائه بالشكل []= سلسلةً نصيةً محدَّدةً مكان جزءٍ محدَّد أو كامل محتوى سلسلة نصية أخرى. البنية العامة str[integer] = new_str
str[integer, integer] = new_str
str[range] = aString
str[regexp] = new_str
str[regexp, integer] = new_str
str[regexp, name] = new_str
str[other_str] = new_str
يحدَّد الجزء المراد تبديله من السلسلة النصية str بالطريقة نفسها المذكورة في المعامل []. إن كان طول السلسلة النصية المعطاة لا يطابق طول السلسلة النصية (أو الجزء المحدّد) المراد تبديله، فستُعدَّل السلسلة النصية المعطاة تلك وفقًا لذلك. إن كان التعبير النمطي أو ...
التابع !String.slice في روبي
يقتطع التابع !slice محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة. عند تمرير تعبير نمطي (Regexp) إلى التابع slice، يعيد التابع الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط ...
التابع String.slice في روبي
يجلب التابع slice محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة. عند تمرير تعبير نمطي (Regexp) إلى التابع slice، يعيد التابع الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط ...
المعامل [] الخاص بالصنف String في روبي
يجلب المعامل [] محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة. عند تمرير تعبير نمطي (Regexp) إلى المعامل []، يعيد الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط (capture)، ...
Ruby/Topics
تثبيت روبي توجد طرائق عدَّة لتنزيل وتثبيت روبي على كل منصة وهي: إمَّا استعمال أنظمة مدير الحزم، أو باستعمال المثبِّتات التلقائية، أو باستعمال مدراء روبي. هنالك طريقة أخرى يمكنك بالتأكيد استعمالها لتثبيت روبي وتصريف شيفراتها وهي بنائها من الشيفرة المصدرية مباشرةً. حول روبي يوفر هذا القسم لمحة سريعة عن لغة روبي ونشأتها، وتطورها، ومزاياها التي انفردت بها عن اللغات الأخرى، والتنفيذات المختلفة التي تملكها. البنية العامة بنية اللغة تعد روبي مزيجًا من اللغات البرمجية التالية: Perl، و Smalltalk، و Eiffel، ...
التابع MatchData.captures في روبي
يعيد التابع captures مصفوفة الأجزاء المُطابقة (array of captures)؛ يكافئ mtch.to_a[1..-1]. البنية العامة captures→ array
القيمة المعادة تعاد مصفوفة الأجزاء المُطابقة. أمثلة مثال على استخدام التابع captures: f1,f2,f3,f4 = /(.)(.)(\d+)(\d)/.match("THX1138.").captures
f1 #=> "H"
f2 #=> "X"
f3 #=> "113"
f4 #=> "8"
انظر أيضا التابع begin: يعيد موضع (offset) بداية العنصر n من مصفوفة التطابق في السلسلة النصية. التابع end: يعيد موضع (offset) الحرف الذي يلي نهاية العنصر n من مصفوفة التطابق في السلسلة النصية. مصادر ...
التابع MatchData.names في روبي
يعيد التابع names قائمة بأسماء الأجزاء المُلتقِطَة (captures) في التعبير النمطي. يشبه التابع names التابع mtch.regexp.names. البنية العامة names→ [name1, name2, ...]
القيمة المعادة تعاد مصفوفة من السلاسل النصية تحوي أسماء الأجزاء المُلتقِطَة (captures). أمثلة مثال على استخدام التابع names: /(?<foo>.)(?<bar>.)(?<baz>.)/.match("hoge").names
#=> ["foo", "bar", "baz"]
m = /(?<x>.)(?<y>.)?/.match("a") #=> #<MatchData "a" x:"a" y:nil>
m.names #=> ["x", "y"]
انظر أيضا ...
التابع MatchData.pre_match في روبي
يعيد التابع pre_match الجزء الذي يسبق المطابقة (match) الحالية من السلسلة النصية الأصلية. يكافئ هذا التابع المتغير الخاص `$. البنية العامة pre_match→ str
القيمة المعادة يعاد الجزء الذي يسبق المطابقة (match) الحالية من السلسلة النصية الأصلية. أمثلة مثال على استخدام التابع pre_match: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.pre_match #=> "T"
انظر أيضا التابع post_match: يعيد الجزء الذي يلي المطابقة (match) الحالية من السلسلة النصية الأصلية. مصادر قسم التابع pre_match في الصنف MatchData في توثيق روبي الرسمي.
التابع MatchData.length في روبي
يعيد التابع length عدد العناصر المتطابقة في مجموعة المُطابقة. البنية العامة length→ integer
القيمة المعادة يعاد عدد صحيح يمثِّل عدد العناصر في مجموعة المُطابقة. أمثلة مثال على استخدام التابع length: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.length #=> 5
m.size #=> 5
انظر أيضا التابع inspect: يعيد نسخة قابلة للطباعة من الكائن الذي استدعي معه. مصادر قسم التابع length في الصنف MatchData في توثيق روبي الرسمي.
التابع MatchData.values_at في روبي
يستخدم التابع values_at الفهارس المُمرَّرة إليه للوصول إلى قيم العناصر المُتطابقة ثم يعيدها. البنية العامة values_at([index]*)→ array
المعاملات index يمثل فهرس العنصر المتطابق في مصفوفة المطابقات. القيمة المعادة تعاد قيمة العناصر المتطابقة المحددة بالفهارس index المعطاة. أمثلة مثال على استخدام التابع values_at: m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
m.to_a #=> ["HX1138", "H", "X", "113", "8"]
m.values_at(0, 2, -2) #=> ["HX1138", "X", "113"]
m = /(?<a>\d+) *(?<op>[+\-*\/]) *(?<b>\d+)/.match("1 + 2")
m.to_a ...
التابع MatchData.end في روبي
يعيد التابع end موضع (offset) الحرف الذي يلي نهاية العنصر n من مصفوفة التطابق في السلسلة النصية. البنية العامة end(n)→ integer
المعاملات n يحدد رقم عنصر من مصفوفة التطابق في السلسلة النصية. يمكن أن يكون سلسلة نصية أو رمزًا للإشارة إلى جزء مُطابق (capture) معيّن القيمة المعادة يعاد موضع (offset) الحرف الذي يلي نهاية العنصر n من مصفوفة التطابق في السلسلة النصية. أمثلة مثال على استخدام التابع end: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.end(0) #=> 7
m.end(2) ...
التابع MatchData.regexp في روبي
يعيد التابع regexp التعبير النمطي (regexp) الذي استُعمِل في عملية المطابقة. البنية العامة regexp→ regexp
القيمة المعادة يعاد كائن من النوع Regexp يمثِّل التعبير النمطي الذي استعمِل في عملية المطابقة. أمثلة مثال على استخدام التابع regexp: m = /a.*b/.match("abc")
m.regexp #=> /a.*b/
انظر أيضا التابع pre_match: يعيد الجزء الذي يسبق المطابقة (match) الحالية من السلسلة النصية الأصلية. مصادر قسم التابع regexp في الصنف MatchData في توثيق روبي الرسمي.
التابع MatchData.string في روبي
يعيد التابع string نسخةً مُجمدةً من السلسلة النصية التي تم تمريرها إلى التابع match لمطابقتها مع تعبير نمطي. البنية العامة string→ str
القيمة المعادة تعاد سلسلة نصية تمثِّل نسخةُ مُجمدةُ من السلسلة النصية التي تم تمريرها إلى التابع match. أمثلة مثال على استخدام التابع string: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.string #=> "THX1138."
انظر أيضا التابع size: يعيد عدد العناصر في مصفوفة المطابقة. التابع to_a: يعيد مصفوفة المطابقات. مصادر قسم التابع string في الصنف MatchData في توثيق روبي الرسمي.
التابع MatchData.offset في روبي
يعيد التابع offset مصفوفة بعنصرين تحوي موضعي (مقدار إزاحة [offsets]) البداية والنهاية للمطابقة n. البنية العامة offset(n)→ array
المعاملات n رقم المطابقة. المعامل n يمكن أن يكون سلسلةً نصيةً أو رمزًا للإشارة إلى مطابقة (capture) معينة. القيمة المعادة تعاد مصفوفة بعنصرين تحوي موضعي (offsets) البداية والنهاية للمطابقة ذات الرقم n. أمثلة مثال على استخدام التابع offset: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.offset(0) #=> [1, 7]
m.offset(4) #=> [6, 7]
m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
p m.offset(:foo) #=> [0, 1]
p ...
التابع MatchData.to_a في روبي
يعيد التابع to_a مصفوفة المطابقات. البنية العامة to_a→ anArray
القيمة المعادة يعيد التابع to_a مصفوفة المطابقات. أمثلة مثال على استخدام التابع to_a: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.to_a #=> ["HX1138", "H", "X", "113", "8"]
لأنّ التابع to_a يُستدعى عند توسيع المتغير *، هناك شكل مختصر ومفيد لعملية الإسناد (assignment) لأجل استخلاص الحقول المُطابقة. هذا الاختصار أبطأ قليلًا من الوصول المباشر إلى الحقول (بسبب إنشاء مصفوفة انتقالية). يشرح المثال التالي ذلك: all,f1,f2,f3 = * /(.)(.)(\d+)(\d)/.match("THX1138.")
all #=> "HX1138"
f1 #=> "H"
f2 ...
التابع MatchData.named_captures في روبي
يعيد التابع named_captures الجدول Hash الذي يحوي العناصر المتطابقة وجزء التعبير النمطي الذي طابقها من التعبير النمطي الكلي. مفاتيح (keys) الجدول Hash هي أسماء الأجزاء المطابقة المعينة (التعبير النمطي المطابق)، والقيمة المقابلة فيه هي سلاسل نصية تمثل آخر جزء متطابق ناجح للمجموعة المقابلة لذلك التعبير النمطي. البنية العامة named_captures → hash
القيمة المعادة يعاد الجدول Hash الذي يحوي العناصر المتطابقة وجزء التعبير النمطي الذي طابقها من التعبير النمطي الكلي. أمثلة مثال على استخدام التابع named_captures: m = /(?<a>.)(?<b>.)/.match("01")
m.named_captures #=> {"a" => ...
التابع MatchData.to_s في روبي
يعيد التابع to_s كامل السلسلة النصية المُطابقة. البنية العامة to_s→ str
القيمة المعادة تعاد كامل السلسلة النصية المُطابقة. أمثلة مثال على استخدام التابع to_s: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.to_s #=> "HX1138"
انظر أيضا التابع string: يعيد نسخةً مُجمدةً من السلسلة النصية التي تم تمريرها إلى التابع match لمطابقتها مع تعبير نمطي. التابع to_a: يعيد مصفوفة المطابقات. مصادر قسم التابع to_s في الصنف MatchData في توثيق روبي الرسمي.
التابع MatchData.post_match في روبي
يعيد التابع post_match الجزء الذي يلي المطابقة (match) الحالية من السلسلة النصية الأصلية. يكافئ هذا التابع المتغير الخاص '$. البنية العامة post_match→ str
القيمة المعادة يعاد الجزء الذي يلي المطابقة (match) الحالية من السلسلة النصية الأصلية. أمثلة مثال على استخدام التابع post_match: m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
m.post_match #=> ": The Movie"
انظر أيضا التابع pre_match: يعيد الجزء الذي يسبق المطابقة (match) الحالية من السلسلة النصية الأصلية. مصادر قسم التابع post_match في الصنف MatchData في توثيق روبي الرسمي.
التابع MatchData.size في روبي
يعيد التابع size عدد العناصر في مصفوفة المطابقة. البنية العامة size → integer
القيمة المعادة يعاد عدد صحيح يمثِّل عدد العناصر في مصفوفة المطابقة. أمثلة مثال على استخدام التابع size: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.length #=> 5
m.size #=> 5
انظر أيضا التابع regexp: يعيد التعبير النمطي (regexp) الذي استُعمِل في عملية المطابقة. التابع string: يعيد نسخةً مُجمدةً من السلسلة النصية التي تم تمريرها إلى التابع match لمطابقتها مع تعبير نمطي. مصادر قسم التابع size في الصنف MatchData في ...
التابع MatchData.begin في روبي
يعيد التابع begin موضع (مقدار إزاحة [offset]) بداية العنصر n من مصفوفة التطابق في السلسلة النصية. البنية العامة begin(n)→ integer
المعاملات n يحدد رقم عنصر من مصفوفة العناصر المتطابقة في السلسلة النصية. يمكن أن يكون سلسلةً نصيةً أو رمزًا للإشارة إلى جزء مُطابق (capture) معيّن. القيمة المعادة يعيد التابع begin موضع بداية العنصر رقم n من مصفوفة التطابق في السلسلة النصية. أمثلة مثال على استخدام التابع begin: m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.begin(0) #=> 1
m.begin(2) ...
التحسينات في روبي
إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...
التوابع في روبي
تتضمّن التوابع في لغة روبي الوظائف التي يقوم بها برنامجك. إليك هذا المثال لتعريف تابع بسيط: def one_plus_one
1 + 1
end
تعريف التابع يتكوّن من الكلمة المحجوزة def يتبعها اسم التابع، ثمّ جسم التابع، فالقيمة المعادة وفي النهاية الكلمة المحجوزة end. فعند تنفيذ التابع في المثال السابق، ستُعاد القيمة 2. هذا القسم سيغطّي تعريف التّوابع. ارجع إلى توثيق استدعاء التوابع لتتعرف على الصيغ المستخدمة لذلك الغرض. تسمية التوابع يمكن أن تستخدم لاسم التابع أحد المعاملات، وإلا فعليك أن تبتدئه بحرف أبجديّ أو ...
الإسناد في روبي
لكي نسند شيئًا في لغة روبي، نستخدم رمز المساواة =؛ ففي المثال التّالي، يُسنَد العدد 5 إلى المتغيّر v المحلّي: v = 5
فالإسناد يُنشئ متغيّرًا محلّيًا جديدًا إذا لم يكن قد عُرِّفَ من قبل. أسماء المتغيرات المحلية اسم المتغيّر المحلّي يجب أن يبدأ بحرف صغير من مجموعة المحارف US-ASCII أو من مجموعة المحارف التي تُمثَّل باستخدام ثمان بتات ثنائيّة. وبشكلٍ عام، فإنّ أسماء المتغيّرات المحلّية متوافقة مع US-ASCII كون الأزرار التي تستخدم لكتابتها موجودة في جميع لوحات المفاتيح. عمومًا، جميع ...
تثبيت روبي على مختلف المنصات
توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...
معلومات إضافية عن روبي
هل تساءلت يومًا لماذا روبي مشهورة إلى هذا الحد؟ يقول المعجبون بها أنَّها لغة جميلة وذات بنية متقنة. ويقولون أيضًا أنَّها لغة عملية وسهلة الاستعمال. فماذا تعطي وبماذا تتمتع؟ مثالية منشئ لغة روبي حققت لغة روبي توازنًا دقيقًا بين لغات البرمجة. عمل منشئ هذا اللغة - الياباني Yukihiro “Matz” Matsumoto - على دمج أجزاءٍ من لغات البرمجة المفضلة لديه (Perl، و Smalltalk، و Eiffel، و Ada، و Lisp) لإنشاء لغة جديدة تحقق التوازن بين البرمجة الوظيفية (functional programming) والبرمجة الأمرية ...
التابع Object.instance_variable_set في روبي
يُعيِّن التابع instance_variable_set قيمة متغيِّر نسخةٍ (instance variable) محدِّدٍ إلى قيمة معيَّنة في الكائن المُعطى؛ هذا يؤدي إلى إحباط جهود منشئ الصنف في محاولة توفير التغليف (encapsulation) المناسب. ليس من الضروري أن يتواجد المتغيِّر قبل استدعاء هذا التابع. إذا مُرِّر اسم متغيِّر النسخة بشكل سلسلةٍ نصيةٍ (string)، فستُحوَّل تلك السلسلة إلى رمز. البنية العامة instance_variable_set(symbol, obj) → obj
instance_variable_set(string, obj) → obj
المعاملات symbol الرمزُ الذي يشير إلى اسم متغيِّر النسخة المراد تعيين قيمة المعامل obj إليه في الكائن المُعطى. string ...
التابع String.sub في روبي
يعيد التابع sub نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى. البنية العامة sub(pattern, replacement) → new_str
sub(pattern, hash) → new_str
sub(pattern) {|match| block } → new_str
إن أعطيت كتلة block إلى التابع، فستُمرَّر السلسلة الحالية المتطابقة إليها وستعيَّن قيم متغيرات مثل $1، و $2، و $`، و $&، و $' بشكل مناسب. ستحل القيم التي تعيدها الكتلة مكان القيمة المتطابقة في كل استدعاء. المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف ...
التابع Numeric.arg في روبي
يعيد التابع arg القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. البنية العامة arg → 0 or float
القيمة المُعادة تعاد القيمة 0 إن كانت القيمة المعطاة موجبة، أو pi خلاف ذلك. انظر أيضا التابع angle: يعيد القيمة 0 إن كان العدد الذي استُدعي معه موجبًا، أو القيمة pi خلاف ذلك. التابع ceil: يعيد أصغر عدد أكبر من أو يساوي العدد المعطى وبدقة محدَّدة. مصادر قسم التابع arg في الصنف Numeric في توثيق روبي الرسمي.
التابع Thread.keys في روبي
يُعيد التابع keys مصفوفة من أسماء المتغيرات محلية الليف (fiber-local variables) على هيئة رموز. البنية العامة keys→ array
القيمة المعادة تعاد مصفوفة من أسماء المتغيرات محلية الليف. أمثلة مثال على استخدام التابع keys: thr = Thread.new do
Thread.current[:cat] = 'meow'
Thread.current["dog"] = 'woof'
end
thr.join #=> #<Thread:0x401b3f10 dead>
thr.keys #=> [:dog, :cat]
انظر أيضًا التابع key?: يتحقق إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable). مصادر قسم التابع keys في الصنف Thread ...
التابع Array.sort! في روبي
يرتب التابع sort! عناصر المصفوفة التي استُدعيت معه. ستجرى عملية الموازنة بين عناصر المصفوفة المراد ترتيبها باستعمال المعامل <=> أو باستعمال كتلة برمجية محددة. إن استعملت الكتلة البرمجية block في ترتيب العناصر، فيجب أن تجري موازنة بين العنصر a والعنصر b وتعيد عددًا سالبًا إن كان b أكبر من a، أو العدد 0 إن كانا متساويين، أو عددًا موجبًا إن كان b أصغر من a. مع ذلك، لن تكون النتيجة مضمونة مئة بالمئة، إذ لا يمكن التنبؤ بترتيب العناصر المتساوية ...
التابع =Process.uid في روبي
يضبط التابع uid عند استدعائه بالشكل uid= user المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية إلى القيمة user. هذا التابع غير متاح على جميع المنصات. البنية العامة uid= user → numeric
القيم المعادة تعاد القيمة user بعد تعيينها إلى المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. أمثلة مثال على استعمال التابع uid: Process.setproctitle('myapp: worker #%d' % worker_id)
انظر أيضًا التابع uid: يعيد المُعرِّف الحقيقي للمستخدم المالك للعملية الحالية. التابع gid=: يضبط عند استدعائه بالشكل gid= integer مُعرِّف المجموعة المالكة للعملية الحالية إلى القيمة ...
التابع ARGF.inspect() في روبي
يعد التابع inspect() اسمًا بديلًا للتابع to_s. انظر أيضًا التابع to_s: يعيد القيمة "ARGF". مصادر قسم التابع ARGF.inspect() في الصنف ARGF في توثيق روبي الرسمي.
الصنف Data في روبي
الصنف Data هو صنف مهمل. كان يعدُّ الصنف الأساس لملحقات C التي تستعمل Data_Make_Struct أو Data_Wrap_Struct. مصادر صفحة الصنف Data في توثيق روبي الرسمي.
التابع 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))
> #=> ...