الفرق بين المراجعتين لصفحة: «Ruby/String/5B-5D-3D»

من موسوعة حسوب
< Ruby‏ | String
إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال".
 
إضافة المحتوى
 
سطر 3: سطر 3:
[[تصنيف: Ruby Operator]]
[[تصنيف: Ruby Operator]]
[[تصنيف: Ruby String]]
[[تصنيف: Ruby String]]
يعيد المعامل <code>[]</code> ب
يبدِّل المعامل <code>[]</code> عند استدعائه بالشكل <code>‎[]=‎‎</code> سلسلةً نصيةً محدَّدةً مكان جزءٍ محدَّد أو كامل محتوى سلسلة نصية أخرى. 
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">str[integer] = new_str
<syntaxhighlight lang="ruby">str[integer] = new_str
سطر 11: سطر 11:
str[regexp, integer] = new_str
str[regexp, integer] = new_str
str[regexp, name] = new_str
str[regexp, name] = new_str
str[other_str] = new_str</syntaxhighlight>
str[other_str] = new_str</syntaxhighlight>يحدَّد الجزء المراد تبديله من السلسلة النصية <code>str</code> بالطريقة نفسها المذكورة في المعامل [[Ruby/String/5B-5D|<code>[]</code>]]. إن كان طول السلسلة النصية المعطاة لا يطابق طول السلسلة النصية (أو الجزء المحدّد) المراد تبديله، فستُعدَّل السلسلة النصية المعطاة تلك وفقًا لذلك. إن كان [[Ruby/Regexp|التعبير النمطي]] أو السلسلة النصية المستعملة كفهرس لا يطابق موضعًا في السلسلة النصية <code>str</code> المراد تطبيق العملية عليها، فسيُرمَى الخطأ <code>[[Ruby/IndexError|IndexError]]</code>. إن استُعمَل التعبير النمطي <code>regexp</code>، فالمعامل <code>integer</code> الاختياري الثاني يسمح لك بتحديد أي [[Ruby/MatchData|جزء متطابق]] تريد استبداله (عبر استعمال قواعد فهرسة الكائن <code>[[Ruby/MatchData|MatchData]]</code> بفعالية).


==القيمة المعادة==
سيرمي الشكل الذي يأخذ التعبير النمطي <code>regexp</code> مع المعامل <code>integer</code> الخطأ <code>[[Ruby/IndexError|IndexError]]</code> إن كانت القيمة المُحدَّدة (الجزء المتطابق) تقع خارج النطاق. سيرمي الشكل الذي يأخذ المجال <code>range</code> الخطا <code>[[Ruby/RangeError|RangeError]]</code> وسيرمي الشكل الذي يأخذ التعبير النمطي <code>regexp</code> والسلسلة النصية <code>name</code> الخطأ <code>[[Ruby/IndexError|IndexError]]</code> في حالة التطابق السلبي (negative match).
يعاد


==انظر أيضا==
== المعاملات ==
 
=== <code>integer</code> ===
[[Ruby/Integer|عدد صحيح]] يمثل فهرس بداية المحارف المراد استبدالها من السلسلة المُستدعاة.
 
=== <code>integer</code> ===
[[Ruby/Integer|عدد صحيح]] يمثل طول السلسلة المراد استبدالها من السلسلة المُستدعاة.
 
=== <code>range</code> ===
[[Ruby/Range|مجال]] يحدد فهرس البداية وفهرس النهاية لسلسلة المحارف المراد استبدالها من السلسلة المُستدعاة.
 
=== <code>regexp</code> ===
[[Ruby/Regexp|تعبير نمطي]] يمثل المحارف المراد مطابقتها واستبدالها من السلسلة المُستدعاة.
 
=== <code>integer</code> ===
فهرس [[Ruby/MatchData|المجموعة الملتقطة]] في التعبير النمطي <code>regexp</code> المُراد استبدالها فقط.
 
=== <code>name</code> ===
اسم <nowiki/>[[Ruby/MatchData|المجموعة الملتقطة]] في التعبير النمطي <code>regexp</code> المُراد استبدالها فقط.
 
=== <code>other_str</code> ===
[[Ruby/String|السلسلة]] المراد استبدالها من السلسلة المُستدعاة.
 
==انظر أيضًا==
* المعامل <code>[[Ruby/String/5B-5D|[]]]</code>: يجلب محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه.
* المعامل ‎<code>[[Ruby/String/3D~|=~‎]]</code>: يطابق التعبير النمطي المُعطى مع سلسلة نصية.
* المعامل <code>[[Ruby/String/25|%]]</code>: يطبِّق السلسلة النصية الواقعة على يساره التي تعد سلسلة تنسيق معيارية على الكائن المعطى الواقع على يمينه ثم يعيد الناتج.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-5B-5D-3D قسم المعامل []‎ في الصنف String في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-5B-5D-3D <nowiki>قسم المعامل‎[]=‎‎ ‎ في الصنف String في توثيق روبي الرسمي.</nowiki>]

المراجعة الحالية بتاريخ 19:34، 30 يناير 2019

يبدِّل المعامل [] عند استدعائه بالشكل ‎[]=‎‎ سلسلةً نصيةً محدَّدةً مكان جزءٍ محدَّد أو كامل محتوى سلسلة نصية أخرى.

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

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 بالطريقة نفسها المذكورة في المعامل []. إن كان طول السلسلة النصية المعطاة لا يطابق طول السلسلة النصية (أو الجزء المحدّد) المراد تبديله، فستُعدَّل السلسلة النصية المعطاة تلك وفقًا لذلك. إن كان التعبير النمطي أو السلسلة النصية المستعملة كفهرس لا يطابق موضعًا في السلسلة النصية str المراد تطبيق العملية عليها، فسيُرمَى الخطأ IndexError. إن استُعمَل التعبير النمطي regexp، فالمعامل integer الاختياري الثاني يسمح لك بتحديد أي جزء متطابق تريد استبداله (عبر استعمال قواعد فهرسة الكائن MatchData بفعالية).

سيرمي الشكل الذي يأخذ التعبير النمطي regexp مع المعامل integer الخطأ IndexError إن كانت القيمة المُحدَّدة (الجزء المتطابق) تقع خارج النطاق. سيرمي الشكل الذي يأخذ المجال range الخطا RangeError وسيرمي الشكل الذي يأخذ التعبير النمطي regexp والسلسلة النصية name الخطأ IndexError في حالة التطابق السلبي (negative match).

المعاملات

integer

عدد صحيح يمثل فهرس بداية المحارف المراد استبدالها من السلسلة المُستدعاة.

integer

عدد صحيح يمثل طول السلسلة المراد استبدالها من السلسلة المُستدعاة.

range

مجال يحدد فهرس البداية وفهرس النهاية لسلسلة المحارف المراد استبدالها من السلسلة المُستدعاة.

regexp

تعبير نمطي يمثل المحارف المراد مطابقتها واستبدالها من السلسلة المُستدعاة.

integer

فهرس المجموعة الملتقطة في التعبير النمطي regexp المُراد استبدالها فقط.

name

اسم المجموعة الملتقطة في التعبير النمطي regexp المُراد استبدالها فقط.

other_str

السلسلة المراد استبدالها من السلسلة المُستدعاة.

انظر أيضًا

  • المعامل []: يجلب محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه.
  • المعامل ‎=~‎: يطابق التعبير النمطي المُعطى مع سلسلة نصية.
  • المعامل %: يطبِّق السلسلة النصية الواقعة على يساره التي تعد سلسلة تنسيق معيارية على الكائن المعطى الواقع على يمينه ثم يعيد الناتج.

مصادر