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

В REPL можно выполнять import, как и в файле. Это удобно для подключения вспомогательных средств стандартной библиотеки.

Например, 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 идеально подходит для следующих задач:

  • быстро опробовать незнакомый программный интерфейс
  • проверить, какой тип выдаёт выражение
  • создать прототип логики перед добавлением её в проект
  • изучать язык в интерактивном режиме

Объединение всех возможностей

В одном сеансе можно определять значения, писать функции, импортировать библиотеки и связывать результаты в цепочки. 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 включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Использование REPL
  2. val, var и типы
  3. Выражения вместо инструкций
  4. Интерполяция строк
← Назад к Scala for Backend Engineering & Functional Programming