Scala REPL (“Read-Evaluate-Print-Loop”) - это интерпретатор командной строки,
который используется в качестве “игровой площадки” для тестирования Scala кода.
Для того чтобы запустить сеанс REPL, надо выполнить команду scala
или scala3
в зависимости от операционной системы,
затем будет выведено приглашение “Welcome”, подобное этому:
$ scala
Welcome to Scala 2.13.15 (OpenJDK 64-Bit Server VM, Java 1.8.0_342).
Type in expressions for evaluation. Or try :help.
scala> _
$ scala
Welcome to Scala 3.5.2 (1.8.0_322, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
scala> _
REPL — это интерпретатор командной строки, поэтому он ждет, пока вы что-нибудь наберете. Теперь можно вводить выражения Scala, чтобы увидеть, как они работают:
scala> 1 + 1
val res0: Int = 2
scala> 2 + 2
val res1: Int = 4
Как показано в выводе, если не присваивать переменную результату выражения,
REPL автоматически создает для вас переменные с именами res0
, res1
и т.д.
Эти имена переменных можно использовать в последующих выражениях:
scala> val x = res0 * 10
val x: Int = 20
Обратите внимание, что в REPL output также показываются результаты выражений.
В REPL можно проводить всевозможные эксперименты.
В этом примере показано, как создать, а затем вызвать метод sum
:
scala> def sum(a: Int, b: Int): Int = a + b
def sum(a: Int, b: Int): Int
scala> sum(2, 2)
val res2: Int = 4
Также можно использовать игровую среду на основе браузера scastie.scala-lang.org.
Если вы предпочитаете писать код в текстовом редакторе, а не в консоли, то можно использовать worksheet.
Contributors to this page:
Contents
- Введение
- Возможности Scala
- Почему Scala 3?
- Почувствуй Scala
- Пример 'Hello, World!'
- REPL
- Переменные и типы данных
- Структуры управления
- Моделирование данных
- Методы
- Функции первого класса
- Одноэлементные объекты
- Коллекции
- Контекстные абстракции
- Верхнеуровневые определения
- Обзор
- Первый взгляд на типы
- Интерполяция строк
- Структуры управления
- Моделирование предметной области
- Инструменты
- Моделирование ООП
- Моделирование ФП
- Методы
- Особенности методов
- Main методы в Scala 3
- Обзор
- Функции
- Анонимные функции
- Параметры функции
- Eta расширение
- Функции высшего порядка
- Собственный map
- Создание метода, возвращающего функцию
- Обзор
- Пакеты и импорт
- Коллекции в Scala
- Типы коллекций
- Методы в коллекциях
- Обзор
- Функциональное программирование
- Что такое функциональное программирование?
- Неизменяемые значения
- Чистые функции
- Функции — это значения
- Функциональная обработка ошибок
- Обзор
- Типы и система типов
- Определение типов
- Параметризованные типы
- Пересечение типов
- Объединение типов
- Алгебраические типы данных
- Вариантность
- Непрозрачные типы
- Структурные типы
- Зависимые типы функций
- Другие типы
- Контекстные абстракции
- Методы расширения
- Параметры контекста
- Контекстные границы
- Given импорты
- Классы типов
- Многостороннее равенство
- Неявное преобразование типов
- Обзор
- Параллелизм
- Scala утилиты
- Сборка и тестирование проектов Scala с помощью Sbt
- Рабочие листы
- Взаимодействие с Java