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

استخدام REPL

Scala تفاعلية

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

ما هي REPL؟

يرمز REPL إلى Read-Eval-Print Loop، أي حلقة القراءة والتقييم والطباعة. وهي صدفة تفاعلية تكتب فيها تعبيرات Scala وتظهر نتائجها فورًا.

تبدأ تشغيلها بتنفيذ scala (أو scala-cli repl) في الطرفية. وهذه أسرع طريقة لتجربة اللغة من دون كتابة برنامج كامل.

تعبيركم الأول

اكتبوا أي تعبير واضغطوا على Enter. يقيّم REPL التعبير ويطبع النتيجة ونوعها واسمًا مولّدًا.

فمثلًا، تؤدي كتابة 1 + 1 إلى عرض شيء مثل val res0: Int = 2.

object Main {
  def main(args: Array[String]): Unit = {
    println(1 + 1)
  }
}

متغيرات res

يُحفَظ كل ناتج تحسبونه تلقائيًا في متغير اسمه resN (res0 وres1 وغيرهما).

يمكنكم إعادة استخدام هذه الأسماء في تعبيرات لاحقة، مما يجعل REPL يشبه آلة حاسبة تعمل باستمرار.

object Main {
  def main(args: Array[String]): Unit = {
    val res0 = 2 + 3
    val res1 = res0 * 10
    println(res1)
  }
}

معلومات النوع

من أكثر الميزات فائدة أن REPL يخبركم بنـوع كل نتيجة.

تؤدي كتابة "hello" إلى طباعة val res0: String = hello. ويساعدكم ذلك على معرفة النوع الذي تستنتجه Scala لأي تعبير.

object Main {
  def main(args: Array[String]): Unit = {
    val greeting = "hello"
    println(greeting)
  }
}

تعريف القيم

يمكنكم تعريف قيم مسمّاة داخل REPL باستخدام val. وتظل هذه القيم موجودة طوال بقية الجلسة.

بعد تعريفها، يمكنكم الإشارة إليها في أي سطر لاحق.

object Main {
  def main(args: Array[String]): Unit = {
    val pi = 3.14159
    val radius = 2.0
    println(pi * radius * radius)
  }
}

تعريف الدوال

لستم مقيّدين بالتعبيرات ذات السطر الواحد. يمكنكم تعريف الدوال مباشرةً في REPL واستدعاؤها فورًا.

وهذا يتيح لكم إنشاء دوال مساعدة صغيرة واختبارها فورًا.

object Main {
  def square(x: Int): Int = x * x
  def main(args: Array[String]): Unit = {
    println(square(5))
  }
}

الإدخال متعدد الأسطر

إذا كتبتم شيئًا غير مكتمل (مثل قوس معقوف مفتوح)، يعرض REPL مطالبة متابعة وينتظر بقية الإدخال.

وهذا يعني أن بإمكانكم لصق التعريفات متعددة الأسطر أو كتابتها بصورة طبيعية، من دون أن يحاول REPL تقييمها قبل اكتمالها.

object Main {
  def main(args: Array[String]): Unit = {
    val total =
      1 +
      2 +
      3
    println(total)
  }
}

الاستيراد في REPL

يمكنكم استخدام import لأي شيء داخل REPL، تمامًا كما تفعلون في ملف. ويفيد ذلك في استيراد الأدوات المساعدة من المكتبة القياسية.

فمثلًا، يوفّر لكم import scala.math.* الدوال sqrt وabs وغيرها.

import scala.math.sqrt
object Main {
  def main(args: Array[String]): Unit = {
    println(sqrt(16.0))
  }
}

أوامر REPL المفيدة

يحتوي REPL على أوامر خاصة تبدأ بنقطتين:

  • يسرد :help جميع الأوامر
  • يمسح :reset جلستكم
  • يخرج :quit من REPL
  • يعرض :type expr نوع تعبير من دون تشغيله

لماذا نستخدم REPL؟

يُعد REPL مناسبًا تمامًا من أجل:

  • تجربة API غير مألوفة بسرعة
  • معرفة النوع الذي ينتجه تعبير ما
  • إنشاء نموذج أولي للمنطق قبل إضافته إلى مشروع
  • تعلّم اللغة بصورة تفاعلية

جمع كل العناصر

في جلسة واحدة، يمكنكم تعريف القيم وكتابة الدوال واستيراد المكتبات وربط النتائج معًا. ويحافظ REPL على جميع هذه العناصر ضمن النطاق.

إليكم مثالًا صغيرًا يمكنكم بناؤه سطرًا بعد سطر.

object Main {
  def celsiusToF(c: Double): Double = c * 9 / 5 + 32
  def main(args: Array[String]): Unit = {
    val temps = List(0.0, 25.0, 100.0)
    println(temps.map(celsiusToF))
  }
}

تحقق سريع

اختبروا مدى فهمكم لـ Scala REPL.

مراجعة

تعلّمتم أن REPL هي حلقة تفاعلية للقراءة والتقييم والطباعة في Scala.

  • تطبع القيمة والنوع واسم resN تلقائيًا لكل نتيجة
  • يمكنكم تعريف قيم val ودوال تظل موجودة في الجلسة
  • يمكنكم استخدام import لاستيراد المكتبات وإدخال نص متعدد الأسطر
  • تتحكم أوامر مثل :type و:reset و:quit في الجلسة

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

هل درس «استخدام REPL» مجاني؟

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

ماذا ستتعلم في «استخدام REPL»؟

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

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

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

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

معظم دروس 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