الدالة toLong()‎ في Kotlin

من موسوعة حسوب
< Kotlin‏ | kotlin.text
مراجعة 11:23، 6 سبتمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

تحلّل الدالة toLong()السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد طويل.

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

inline actual fun String.toLong(): Long

تحلّل الدالة toLong()السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد طويل. في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException.

inline actual fun String.toLong(radix: Int): Long

الإصدار المطلوب: Kotlin 1.1.

تحلّل الدالة toLong()السلسلة النصية التي استٌدعيت معها وتحوّلها إلى عدد طويل.

في حال لم تكن السلسلة النصية تمثل عددًا، فسيُطلَق الاستثناء NumberFormatException. أما في حال كان المعامل radix المعطى أساسًا غير صالح لتحويل السلسلة النصية إلى عدد، فسيُطلَق الاستثناء IllegalArgumentException.

يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).

المعاملات

radix

عدد صحيح بين 2 و 36 الذي يُمثِّل أساس القيمة العددية المحتواة في السلسلة النصية والتي ستستعمل في عملية التحويل؛ لاستخدام نظام العد العشري (decimal) شائع الاستخدام بين البشر، فحدِّد القيمة 10.

إن كانت القيمة المعطاة لهذا المعامل غير صالحة، فسيُطلَق الاستثناء IllegalArgumentException.

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

يعاد عدد من النوع Long يمثل ناتج تحويل السلسلة النصية المعطاة.

أمثلة

مثالٌ على استعمال الدالة toLong()‎:

fun main(args: Array<String>) {
    println("43".toLong()) // 43
    println("3233234234242343243".toLong()) // 3233234234242343243
    println("032".toLong()) // 32
}

مثالٌ آخر على استعمال الدالة toLong()‎ مع سلسلة نصية غير صالحة:

fun main(args: Array<String>) {
    println("43m".toLong()) // إطلاق استثناء
}

سيعطي هذا المثال عند تنفيذه الناتج التالي:

Exception in thread "main" java.lang.NumberFormatException: For input string: "43m"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.base/java.lang.Long.parseLong(Long.java:692)
	at java.base/java.lang.Long.parseLong(Long.java:817)
	at TestKt.main(test.kt:2)

انظر أيضًا

مصادر