0Pricing
Scala for Backend Engineering & Functional Programming · درس

إقحام السلاسل

s وf وraw

إقحام السلاسل درس مجاني في Scala for Backend Engineering & Functional Programming على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Scala for Backend Engineering & Functional Programming، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Scala for Backend Engineering & Functional Programming 4 دروس في المجموع.

ما هو استيفاء السلاسل النصية؟

يتيح استيفاء السلاسل النصية تضمين القيم مباشرةً داخل سلسلة نصية مكتوبة حرفيًا بدلًا من وصلها باستخدام +.

تضعون قبل السلسلة حرفًا مثل s أو f أو raw، ثم تستخدمون $ لإدراج القيم.

المُستوفي s

يدرج المُستوفي s قيمة المتغير حيث تكتبون $name.

وهو المُستوفي الأكثر شيوعًا، ويستبدل عمليات الوصل المرهقة.

object Main {
  def main(args: Array[String]): Unit = {
    val name = "Ada"
    println(s"Hello, $name!")
  }
}

التعبيرات بين الأقواس المعقوفة

بالنسبة إلى أي شيء يتجاوز متغيرًا بسيطًا، ضعوا التعبير داخل ${ ... }.

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

object Main {
  def main(args: Array[String]): Unit = {
    val a = 4
    val b = 6
    println(s"Sum is ${a + b}")
  }
}

استدعاء الدوال من الداخل

يمكنكم أيضًا استدعاء الدوال داخل ${ ... }. فأي تعبير صالح يعمل هناك.

object Main {
  def main(args: Array[String]): Unit = {
    val word = "scala"
    println(s"Upper: ${word.toUpperCase}")
  }
}

المُستوفي f

يضيف المُستوفي f تنسيقًا بأسلوب printf. وبعد التعبير، تضعون تنسيقًا مثل %.2f لعرض منزلتين عشريتين.

وهذا مثالي للنقود والنسب المئوية والمخرجات المحاذاة.

object Main {
  def main(args: Array[String]): Unit = {
    val price = 9.5
    println(f"Price: $$$price%.2f")
  }
}

تنسيق الأعداد الصحيحة

ينسّق المُستوفي f الأعداد الصحيحة أيضًا، مثل %d لعدد صحيح عشري أو %05d لإكمال العدد بالأصفار.

object Main {
  def main(args: Array[String]): Unit = {
    val id = 42
    println(f"ID: $id%05d")
  }
}

المُستوفي raw

يعمل المُستوفي raw مثل s، لكنه لا يعالج تسلسلات الهروب.

لذلك تبقى \n محرفي backslash وn بدلًا من أن تتحول إلى سطر جديد.

object Main {
  def main(args: Array[String]): Unit = {
    println(raw"line1\nline2")
  }
}

مقارنة s وraw

مع s، تتحول \n إلى سطر جديد فعلي. أما مع raw فتبقى حرفية.

استخدموا raw للمسارات أو أنماط regex أو أي شيء ينبغي فيه الحفاظ على الشرطات العكسية.

object Main {
  def main(args: Array[String]): Unit = {
    println(s"a\nb")
    println(raw"a\nb")
  }
}

الاستيفاء متعدد الأسطر

يعمل الاستيفاء أيضًا مع السلاسل النصية المحاطة بثلاث علامات اقتباس، والتي يمكن أن تمتد على عدة أسطر.

وهذا مناسب جدًا لإنشاء مخرجات مقولبة وسهلة القراءة.

object Main {
  def main(args: Array[String]): Unit = {
    val user = "Grace"
    val score = 95
    println(s"""User: $user
Score: $score""")
  }
}

إخفاء علامة الدولار

لطباعة علامة دولار حرفية داخل سلسلة مستوفاة، اكتبوا $$.

وبذلك لا يتعامل المُستوفي معها على أنها بداية متغير.

object Main {
  def main(args: Array[String]): Unit = {
    val amount = 20
    println(s"Cost: $$$amount")
  }
}

جمع العناصر

اجمعوا المتغيرات العادية وتعبيرًا بين أقواس معقوفة واستدعاء دالة في رسالة مستوفاة واحدة.

object Main {
  def main(args: Array[String]): Unit = {
    val item = "book"
    val qty = 3
    val each = 12.0
    println(s"$qty ${item}s cost ${qty * each}")
  }
}

تحقق سريع

اختبروا معرفتكم بالمُستوفِيات.

مراجعة

تعلّمتم المُستوفِيات الثلاثة الرئيسية للسلاسل النصية في Scala:

  • يدرج s المتغيرات والتعبيرات ${expr}
  • يضيف f تنسيقًا بأسلوب printf مثل %.2f و%05d
  • يحافظ raw على تسلسلات الهروب بصورتها الحرفية
  • استخدموا $$ لعرض علامة دولار حرفية
  • يعمل الاستيفاء أيضًا مع السلاسل متعددة الأسطر المحاطة بثلاث علامات اقتباس

الأسئلة الشائعة

هل درس «إقحام السلاسل» مجاني؟

نعم — نص درس «إقحام السلاسل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Scala for Backend Engineering & Functional Programming، انتقل إلى CoddyKit PRO. تتضمن دورة Scala for Backend Engineering & Functional Programming 4 دروس في المجموع.

ماذا ستتعلم في «إقحام السلاسل»؟

s وf وraw تتمرن على Scala for Backend Engineering & Functional Programming مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Scala for Backend Engineering & Functional Programming؟

لا تُشترط خبرة سابقة. Scala for Backend Engineering & Functional Programming على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «إقحام السلاسل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Scala for Backend Engineering & Functional Programming هذا؟

نعم. كل درس في Scala for Backend Engineering & Functional Programming يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. استخدام REPL
  2. val وvar والأنواع
  3. التعبيرات بدلًا من العبارات
  4. إقحام السلاسل
← العودة إلى Scala for Backend Engineering & Functional Programming