التابع String.downcase في روبي

من موسوعة حسوب
< Ruby‏ | 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، أي ذات ترميز موحد) للسلسلة النصية التي استدعيت معه باستخدام أحد ترميزات يونيكود الموحدة.

مصادر