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

السلاسل متعددة الأسطر

استخدم الكتل المحاطة بثلاث علامات اقتباس

السلاسل متعددة الأسطر درس مجاني في 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 دروس في المجموع.

ما هي السلاسل متعددة الأسطر؟

تحتاج أحيانًا إلى نص يمتد على عدة أسطر، مثل رسالة أو JSON أو استعلام SQL.

تتيح لك Scala كتابة هذه النصوص باستخدام علامات الاقتباس الثلاثية، التي تحافظ على فواصل الأسطر تمامًا كما تكتبها.

val text = """Line one
Line two"""
println(text)

صياغة علامات الاقتباس الثلاثية

أحطّ النص بثلاث علامات اقتباس مزدوجة من كل جانب: """...""".

داخلها، لا تحتاج إلى تخليص علامات الاقتباس المزدوجة العادية، ما يجعلها مناسبة جدًا للنصوص التي تحتوي على علامات اقتباس.

val json = """{"name": "Ada"}"""
println(json)

فواصل الأسطر الحقيقية

في السلسلة النصية المحاطة بثلاث علامات اقتباس، يؤدي الضغط على Enter إلى إنشاء سطر جديد فعلي في القيمة.

وهذا مفيد جدًا لكتل النصوص التي تريد الحفاظ على تنسيقها.

object Main extends App {
  val poem = """Roses are red
Scala is neat"""
  println(poem)
}

مشكلة المسافات البادئة

إذا أضفت مسافة بادئة إلى سلسلة نصية متعددة الأسطر في الشيفرة، تصبح تلك المسافات البادئة جزءًا من القيمة.

وغالبًا ما يبدو ذلك فوضويًا عند الطباعة. توفّر Scala طريقة بسيطة لإزالة المسافات البادئة.

val msg = """Hello
    World"""
println(msg)

stripMargin

تزيل stripMargin المسافات البيضاء البادئة حتى تصل إلى حرف الهامش، وهو | افتراضيًا.

ضع | في بداية كل سطر، ثم استدعِ stripMargin لمحاذاة الشيفرة بطريقة مرتبة.

val msg = """Hello
    |World""".stripMargin
println(msg)

كتلة متعددة الأسطر مرتبة

يؤدي الجمع بين علامات الاقتباس الثلاثية وstripMargin إلى شيفرة سهلة القراءة ونتائج مرتبة.

يبدأ كل سطر بالرمز |، وتُزال هذه العلامة عند الطباعة.

object Main extends App {
  val report = """Report
    |Total: 5
    |Done!""".stripMargin
  println(report)
}

حرف هامش مخصص

يمكنك تمرير حرف هامش مختلف إلى stripMargin إذا تعارض | مع النص.

على سبيل المثال، استخدم # بدلًا منه كعلامة للهامش.

val s = """One
    #Two""".stripMargin('#')
println(s)

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

يمكنك الجمع بين علامات الاقتباس الثلاثية وinterpolator s لإدراج قيم داخل نص متعدد الأسطر.

ضع s قبل علامة الاقتباس الثلاثية الافتتاحية، ثم استخدم $variable كالمعتاد.

val name = "Sam"
val msg = s"""Hi $name,
    |Welcome aboard!""".stripMargin
println(msg)

بناء استعلام SQL

تتألق السلاسل متعددة الأسطر عند كتابة SQL أو أي نص طويل آخر في الشيفرة الخلفية.

ويظل التنسيق سهل القراءة في الشيفرة المصدرية وفي الناتج.

val query = """SELECT id, name
    |FROM users
    |WHERE active = true""".stripMargin
println(query)

علامات اقتباس داخل علامات اقتباس

داخل علامات الاقتباس الثلاثية، لا تحتاج علامات الاقتباس المزدوجة العادية إلى تخليص. وهذا يتجنب الفوضى الناتجة عن كتابة \" في كل مكان.

وهذا مناسب تمامًا لتضمين JSON أو العبارات المقتبسة.

val line = """He said "hello" to me"""
println(line)

الجمع مع الأساليب

تظل السلسلة متعددة الأسطر من النوع String العادي، لذلك تعمل عليها جميع الأساليب المعتادة.

هنا نزيل المسافات ونحسب الطول بعد إزالة الهامش.

val block = """abc
    |def""".stripMargin
println(block.length)
println(block.toUpperCase)

اختبار سريع

كيف تزيل المسافات البادئة من سلسلة نصية متعددة الأسطر؟

مراجعة

تعلّمت كتابة نص متعدد الأسطر باستخدام علامات الاقتباس الثلاثية """..."""، التي تحافظ على فواصل الأسطر ولا تتطلب تخليص علامات الاقتباس.

استخدمت stripMargin مع علامة | للحفاظ على ترتيب الشيفرة، وجمعتها مع interpolator s، وطبّقت أساليب السلاسل النصية العادية على الناتج.

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

هل درس «السلاسل متعددة الأسطر» مجاني؟

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

ماذا ستتعلم في «السلاسل متعددة الأسطر»؟

استخدم الكتل المحاطة بثلاث علامات اقتباس تتمرن على 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. أساسيات String
  2. مُدرِجات s وf وraw
  3. أساليب String الشائعة
  4. السلاسل متعددة الأسطر
← العودة إلى Scala for Backend Engineering & Functional Programming