Использование 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 — локальная установка не требуется.
Все уроки этого курса
- Использование REPL
- val, var и типы
- Выражения вместо инструкций
- Интерполяция строк