Это была длинная глава, поэтому давайте рассмотрим ключевые моменты, которые мы прошли.
Функция высшего порядка (HOF) часто определяется как функция, которая принимает другие функции в качестве входных параметров или возвращает функцию в качестве своего значения. В Scala это возможно, потому что функции являются объектами первого класса.
Двигаясь по разделам, сначала вы узнали:
- Как писать анонимные функции в виде небольших фрагментов кода.
- Как передать их десяткам HOF (методов) в классах коллекций, т.е. таким методам, как
filter
,map
и т.д. - Как с помощью этих небольших фрагментов кода и мощных HOF создавать множество функций с помощью небольшого кода.
Изучив анонимные функции и HOF, вы узнали:
- Функциональные переменные — это просто анонимные функции, привязанные к переменной.
Увидев, как быть потребителем HOF, вы увидели, как стать создателем HOF. В частности, вы узнали:
- Как писать методы, принимающие функции в качестве входных параметров
- Как вернуть функцию из метода
Полезным побочным эффектом этой главы является то,
что вы увидели много примеров того, как объявлять сигнатуры типов для функций.
Преимущество этого заключается в том, что вы используете один и тот же синтаксис
для определения параметров функций, анонимных функций и функциональных переменных,
а также становится легче читать Scaladoc для функций высшего порядка, таких как map
, filter
и другие.
Contributors to this page:
Contents
- Введение
- Возможности Scala
- Почему Scala 3?
- Почувствуй Scala
- Пример 'Hello, World!'
- REPL
- Переменные и типы данных
- Структуры управления
- Моделирование данных
- Методы
- Функции первого класса
- Одноэлементные объекты
- Коллекции
- Контекстные абстракции
- Верхнеуровневые определения
- Обзор
- Первый взгляд на типы
- Интерполяция строк
- Структуры управления
- Моделирование предметной области
- Инструменты
- Моделирование ООП
- Моделирование ФП
- Методы
- Особенности методов
- Main методы в Scala 3
- Обзор
- Функции
- Анонимные функции
- Параметры функции
- Eta расширение
- Функции высшего порядка
- Собственный map
- Создание метода, возвращающего функцию
- Обзор
- Пакеты и импорт
- Коллекции в Scala
- Типы коллекций
- Методы в коллекциях
- Обзор
- Функциональное программирование
- Что такое функциональное программирование?
- Неизменяемые значения
- Чистые функции
- Функции — это значения
- Функциональная обработка ошибок
- Обзор
- Типы и система типов
- Определение типов
- Параметризованные типы
- Пересечение типов
- Объединение типов
- Алгебраические типы данных
- Вариантность
- Непрозрачные типы
- Структурные типы
- Зависимые типы функций
- Другие типы
- Контекстные абстракции
- Методы расширения
- Параметры контекста
- Контекстные границы
- Given импорты
- Классы типов
- Многостороннее равенство
- Неявное преобразование типов
- Обзор
- Параллелизм
- Scala утилиты
- Сборка и тестирование проектов Scala с помощью Sbt
- Рабочие листы
- Взаимодействие с Java