الفرق بين المراجعتين ل"Ruby/String/downcase"

من موسوعة حسوب
< Ruby‏ | String
اذهب إلى التنقل اذهب إلى البحث
(إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال".)
 
(إضافة المحتوى)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby String]]
 
[[تصنيف: Ruby String]]
يعيد التابع <code>downcase</code> ب
+
يعيد التابع <code>downcase</code> نسخةً من السلسلة النصية التي استدعي معها مع استبدال الحروف الكبيرة بنظائرها الصغيرة.
 +
 
 +
استبدال الحروف بحروف أخرى يعتمد على المعامل المُمرَّر إلى التابع، وعلى [[Ruby/Encoding|ترميز]] السلسلة النصية المعطاة.
 +
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">downcase → new_str
 
<syntaxhighlight lang="ruby">downcase → new_str
 
downcase([options]) → new_str</syntaxhighlight>
 
downcase([options]) → new_str</syntaxhighlight>
 +
 +
== المعاملات ==
 +
 +
=== <code>options</code> ===
 +
يُستخدم للتحكم بعملية التبديل ويأخذ إحدى القيم التالية:
 +
{| class="wikitable"
 +
!الخيار
 +
!الوصف
 +
|-
 +
|بدون خيار
 +
|يمثِّل ربط (mapping) محارف اليونيكود (Unicode) الكاملة ذات الحالة الكبيرة والصغيرة مع بعضها لتبديلها، وهذا مناسب لأغلب اللغات (اطلع على الخيار <code>turkic:</code> والخيار <code>lithuanian:</code> في الأسفل، إذ تعد كل منهما حالة استثنائية).
 +
|-
 +
|<code>‎:ascii</code>
 +
|يحدد محارف الترميز ASCII فقط أي المحارف من "A" إلى "Z" ومن "a" إلى "z" هي التي ستُبدَّل فقط. لا يمكن دمج هذا الخيار مع أي خيار آخر.
 +
|-
 +
|<code>‎:turkic</code>
 +
|يمثِّل ربط محارف اليونيكود الكاملة بما يتوافق مع اللغات التركية (مثل اللغة التركية والأذربيجانية ...إلخ). هذا يعني أنَّ الحرف I الكبير يُربَط مع الحرف i الصغير عديم النقط وهلم جرًا.
 +
|-
 +
|<code>‎:lithuanian</code>
 +
|حاليًا، تحديد هذا الخيار وعدمه (الحالة الأولى "بدون خيار") سواء. في المستقبل، سيُمثِّل حالة ربط محارف اليونيكود الكاملة بما يتوافق مع اللغة الليتوانية (الإبقاء على النقطة في الحرف i الصغير حتى لو كان هنالك لكنة سائدة بغير ذلك).
 +
|-
 +
|<code>‎:fold</code>
 +
|هذا الخيار متاحٌ للاستعمال مع التابع <code>downcase</code> و <code>[[Ruby/String/downcase-21|downcase!]]‎</code> فقط. طي حالة ترميز اليونيكود (Unicode case folding) هي ذات تأثير كبير وقابلية للتطبيق أكثر من ربط محارف اليونيكود ذات الحالة (Unicode case mapping). لا يمكن دمج هذا الخيار مع أي خيار آخر في الوقت الحالي (أي أنه لا يوجد أي اختلاف في اللغات التركية حاليًا).
 +
|}
 +
انتبه رجاءً إلى أنَّ هنالك افتراضات عدَّة صالحة من أجل تحويلات حالة محارف ASCII لا تتعدى تحويلات حالة المحارف بشكل عام. على سبيل المثال، طول المحارف أو عدد البايتات الناتجة قد تختلف عن طول تلك الأصلية، وبعض الافتراضات حول تطبيق العملية ذهابًا وإيابًا (مثل <code>str.downcase == str.upcase.downcase</code>) قد تكون غير محقَّقة، و<nowiki/>[[Ruby/String/unicode normalize|توحيد الترميز]] (Unicode normalization) قد لا يطبق بالضرورة عبر عمليات ربط الحالة (case mapping).
 +
 +
طي وربط حالة محارف غير محارف ASCII أصبح مدعومًا الآن من أجل السلاسل النصية والرموز المرمَّزة عبر UTF-8، و UTF-16BE/LE، و UTF-32BE/LE، و ISO-8859-1~16. هذا الدعم سيوسَّع إلى ترميزات أخرى.
  
 
==القيمة المعادة==
 
==القيمة المعادة==
يعاد
+
تعاد نسخةٌ من السلسلة النصية المعطاة مع تبديل الحروف الكبيرة فيها بنظائرها الصغيرة.
  
 
==أمثلة==
 
==أمثلة==
 
مثال على استخدام التابع <code>downcase</code>:
 
مثال على استخدام التابع <code>downcase</code>:
 
<syntaxhighlight lang="ruby">"hEllO".downcase  #=> "hello"</syntaxhighlight>
 
<syntaxhighlight lang="ruby">"hEllO".downcase  #=> "hello"</syntaxhighlight>
==انظر أيضا==
+
==انظر أيضًا==
 +
* التابع <code>[[Ruby/String/downcase-21|downcase!‎]]</code>: يعدل على السلسلة النصية المعطاة وذلك باستبدال الحروف الكبيرة فيها بنظائرها الصغيرة.
 +
* التابع <code>[[Ruby/String/swapcase|swapcase]]</code>: يعيد نسخة عن السلسلة النصية التي استدعيت معه مع استبدال الحروف الأبجدية الكبيرة بنظيراتها الصغيرة، واستبدال الحروف الصغيرة بنظيراتها الكبيرة.
 +
* التابع <code>[[Ruby/String/upcase|upcase]]</code>: يعيد نسخةً عن السلسلة النصية مع استبدال الحروف الصغيرة بنظائرها الكبيرة.
 +
 
 +
* التابع <code>[[Ruby/String/unicode normalize|unicode_normalize]]</code>: يعيد نسخة موحدة (normalized string، أي ذات ترميز موحد) للسلسلة النصية التي استدعيت معه باستخدام أحد ترميزات يونيكود الموحدة.
  
 
==مصادر==
 
==مصادر==
 
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-downcase قسم التابع downcase‎ في الصنف String في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-downcase قسم التابع downcase‎ في الصنف String في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:24، 2 فبراير 2019

يعيد التابع downcase نسخةً من السلسلة النصية التي استدعي معها مع استبدال الحروف الكبيرة بنظائرها الصغيرة.

استبدال الحروف بحروف أخرى يعتمد على المعامل المُمرَّر إلى التابع، وعلى ترميز السلسلة النصية المعطاة.

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

downcase  new_str
downcase([options])  new_str

المعاملات

options

يُستخدم للتحكم بعملية التبديل ويأخذ إحدى القيم التالية:

الخيار الوصف
بدون خيار يمثِّل ربط (mapping) محارف اليونيكود (Unicode) الكاملة ذات الحالة الكبيرة والصغيرة مع بعضها لتبديلها، وهذا مناسب لأغلب اللغات (اطلع على الخيار turkic: والخيار lithuanian: في الأسفل، إذ تعد كل منهما حالة استثنائية).
‎:ascii يحدد محارف الترميز ASCII فقط أي المحارف من "A" إلى "Z" ومن "a" إلى "z" هي التي ستُبدَّل فقط. لا يمكن دمج هذا الخيار مع أي خيار آخر.
‎:turkic يمثِّل ربط محارف اليونيكود الكاملة بما يتوافق مع اللغات التركية (مثل اللغة التركية والأذربيجانية ...إلخ). هذا يعني أنَّ الحرف I الكبير يُربَط مع الحرف i الصغير عديم النقط وهلم جرًا.
‎:lithuanian حاليًا، تحديد هذا الخيار وعدمه (الحالة الأولى "بدون خيار") سواء. في المستقبل، سيُمثِّل حالة ربط محارف اليونيكود الكاملة بما يتوافق مع اللغة الليتوانية (الإبقاء على النقطة في الحرف i الصغير حتى لو كان هنالك لكنة سائدة بغير ذلك).
‎:fold هذا الخيار متاحٌ للاستعمال مع التابع downcase و downcase! فقط. طي حالة ترميز اليونيكود (Unicode case folding) هي ذات تأثير كبير وقابلية للتطبيق أكثر من ربط محارف اليونيكود ذات الحالة (Unicode case mapping). لا يمكن دمج هذا الخيار مع أي خيار آخر في الوقت الحالي (أي أنه لا يوجد أي اختلاف في اللغات التركية حاليًا).

انتبه رجاءً إلى أنَّ هنالك افتراضات عدَّة صالحة من أجل تحويلات حالة محارف ASCII لا تتعدى تحويلات حالة المحارف بشكل عام. على سبيل المثال، طول المحارف أو عدد البايتات الناتجة قد تختلف عن طول تلك الأصلية، وبعض الافتراضات حول تطبيق العملية ذهابًا وإيابًا (مثل str.downcase == str.upcase.downcase) قد تكون غير محقَّقة، وتوحيد الترميز (Unicode normalization) قد لا يطبق بالضرورة عبر عمليات ربط الحالة (case mapping).

طي وربط حالة محارف غير محارف ASCII أصبح مدعومًا الآن من أجل السلاسل النصية والرموز المرمَّزة عبر UTF-8، و UTF-16BE/LE، و UTF-32BE/LE، و ISO-8859-1~16. هذا الدعم سيوسَّع إلى ترميزات أخرى.

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

تعاد نسخةٌ من السلسلة النصية المعطاة مع تبديل الحروف الكبيرة فيها بنظائرها الصغيرة.

أمثلة

مثال على استخدام التابع downcase:

"hEllO".downcase   #=> "hello"

انظر أيضًا

  • التابع downcase!‎: يعدل على السلسلة النصية المعطاة وذلك باستبدال الحروف الكبيرة فيها بنظائرها الصغيرة.
  • التابع swapcase: يعيد نسخة عن السلسلة النصية التي استدعيت معه مع استبدال الحروف الأبجدية الكبيرة بنظيراتها الصغيرة، واستبدال الحروف الصغيرة بنظيراتها الكبيرة.
  • التابع upcase: يعيد نسخةً عن السلسلة النصية مع استبدال الحروف الصغيرة بنظائرها الكبيرة.
  • التابع unicode_normalize: يعيد نسخة موحدة (normalized string، أي ذات ترميز موحد) للسلسلة النصية التي استدعيت معه باستخدام أحد ترميزات يونيكود الموحدة.

مصادر