При вызове методов можно конкретно указывать название задаваемого аргумента следующим образом:
def printName(first: String, last: String): Unit =
println(first + " " + last)
printName("John", "Smith") // выводит "John Smith"
printName(first = "John", last = "Smith") // выводит "John Smith"
printName(last = "Smith", first = "John") // выводит "John Smith"
Обратите внимание, что при указании имени параметра, порядок аргумента может быть изменен. Однако если какие-то аргументы именованные, а другие нет, то аргументы без имени должны стоять на первом месте и располагаться в том порядке, в котором описаны параметры метода.
printName(last = "Smith", "john") // ошибка: позиция после именованного аргумента
Именованные аргументы работают при вызове Java методов, но только в том случае,
если используемая Java библиотека была скомпилирована с -parameters
.
Contributors to this page:
Contents
- Введение
- Основы
- Единобразие типов
- Классы
- Значения Параметров По умолчанию
- Именованные Аргументы
- Трейты
- Кортежи
- Композиция классов с трейтами
- Функции Высшего Порядка
- Вложенные Методы
- Множественные списки параметров (Каррирование)
- Классы Образцы
- Сопоставление с примером
- Объекты Одиночки
- Регулярные Выражения
- Объект Экстрактор
- Сложные for-выражения
- Обобщенные Классы
- Вариантность
- Верхнее Ограничение Типа
- Нижнее Ограничение Типа
- Внутренние классы
- Члены Абстрактного Типа
- Составные Типы
- Самоописываемые типы
- Контекстные параметры, также известные, как неявные параметры
- Неявные Преобразования
- Полиморфные методы
- Выведение Типа
- Операторы
- Вызов по имени
- Аннотации
- Пакеты и Импорт
- Объекты Пакета