Menu
CoddyTech

قوالب السلاسل النصية

جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 36 من 93.

لقد رأيتَ بالفعل قوالب السلاسل النصية قيد الاستخدام طوال هذه الدورة: الرمز $ الذي يتيح لك تضمين المتغيرات مباشرةً داخل السلاسل النصية. لنستكشف هذه الميزة بمزيد من التفصيل.

تتيح لك قوالب السلاسل إدراج قيم المتغيرات في السلاسل باستخدام البادئة $:

fun main() {
    val name = "Alice"
    val age = 25
    println("My name is $name and I am $age years old.")
}
// الناتج: My name is Alice and I am 25 years old.

بالنسبة إلى أسماء المتغيرات البسيطة، استخدم $variableName فحسب. ولكن عندما تحتاج إلى تضمين تعبيرات أو الوصول إلى الخصائص، فضعها بين أقواس معقوفة:

fun main() {
    val price = 15
    val quantity = 3
    println("Total: ${price * quantity}")
    println("Next year I'll be ${25 + 1}")
}
// المخرجات:
// الإجمالي: 45
// العام القادم سأكون 26

تُخبر الأقواس المعقوفة Kotlin بتقييم التعبير الموجود بداخلها قبل إدراجه في السلسلة النصية. ويعمل هذا مع أي تعبير صالح: العمليات الحسابية، أو استدعاءات الدوال، أو الوصول إلى الخصائص.

إذا كنت بحاجة إلى طباعة علامة الدولار الفعلية، فاهرب منها باستخدام شرطة مائلة عكسية:

fun main() {
    val price = 50
    println("The cost is \$$price")
}
// المخرجات: التكلفة هي $50
challenge icon

التحدي

سهل

اكتب دالة formatReceipt تأخذ item وquantity وpricePerUnit وتُرجع سطر إيصال مُنسّقًا.

استخدم قوالب السلاسل النصية مع كلٍّ من إدراج المتغيرات البسيط ($variable) وتقييم التعبيرات (${expression}) لبناء سلسلة الإيصال.

التنسيق: يجب أن تتبع السلسلة المُرجعة هذا النمط الدقيق:

[item] x[quantity] = $[total]

حيث إن [total] هو ناتج ضرب quantity في pricePerUnit.

المعاملات:

  • item (String): اسم العنصر
  • quantity (Int): عدد العناصر التي تم شراؤها
  • pricePerUnit (Int): سعر العنصر الواحد

القيمة المُرجعة: سطر إيصال مُنسّق (String). التنسيق: Apple x3 = $15

جرّب بنفسك

fun formatReceipt(item: String, quantity: Int, pricePerUnit: Int): String {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Kotlin