Именованные аргументы
Часть раздела Основы путешествия по Kotlin на Coddy. Урок 58 из 93.
При вызове функции с несколькими параметрами обычно передают аргументы в точном порядке, в котором они определены. Но Kotlin предлагает более удобную альтернативу: именованные аргументы.
При использовании именованных аргументов укажите, какому параметру соответствует каждое значение, используя имя параметра, за которым следует =:
fun createProfile(name: String, age: Int, city: String) {
println("$name, $age, from $city")
}
fun main() {
createProfile(name = "Alice", age = 25, city = "Paris")
}
// Вывод: Alice, 25, from ParisЭто делает ваш код более читаемым, особенно когда у функции несколько параметров одного типа. Сравните эти два вызова:
// Без именованных аргументов — что означают эти числа?
calculateArea(10, 5, 3)
// С именованными аргументами — гораздо понятнее!
calculateArea(length = 10, width = 5, height = 3)Именованные аргументы также позволяют передавать значения в любом порядке, который вы предпочитаете:
fun greet(firstName: String, lastName: String) {
println("Hello, $firstName $lastName!")
}
fun main() {
greet(lastName = "Smith", firstName = "John")
}
// Вывод: Hello, John Smith!Вы можете смешивать позиционные и именованные аргументы, но после использования именованного аргумента все последующие аргументы также должны быть именованными, чтобы избежать путаницы.
Задание
СреднеВам предоставлена следующая функция:
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}Считайте три входных значения: название книги (String), имя автора (String) и год публикации (Int).
Вызовите функцию formatBook, используя именованные аргументы в следующем определённом порядке: year, title, author.
Например, если входные данные имеют вид:
1984
George Orwell
1949Вывод должен быть таким:
"1984" by George Orwell (1949)Попробуйте сами
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}
fun main() {
val title = readLine()!!
val author = readLine()!!
val year = readLine()!!.toInt()
// TODO: Вызовите formatBook, используя именованные аргументы в следующем порядке: year, title, author
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеОператоры сравненияПовторение — простая математика7Базовый ввод-вывод
Функция PrintlnШаблоны строкВвод ReadLineПреобразование типовПовторение — лет до выхода на пенсиюПовторение — правда или ложь10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияИменованные аргументыЗначения по умолчаниюФункции с одним выражениемПовторение — функция SigmaПовторение — функция валидации13Итерация по последовательностям
Итерация по элементамМетод WithIndexИтерация по строкам, ч. 1Итерация по строкам, ч. 2Повторение — индексированные буквы2Переменные
Val и VarВывод типовЧислаСтрокаЛогическое значениеСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Логические операторы, часть 3Тернарный оператор с выражением ifПовторение — простая логика8Калькулятор разделения счёта
Приветственное сообщениеВвод данных3Обработка null
Что такое безопасность nullТипы, допускающие nullОператор безопасного вызоваОператор ЭлвисаОсновы задания на функцииУтверждение ненулевого значенияПовторение — безопасный доступ6Принятие решений
Инструкция ifIf — ElseIf как выражениеВыражение whenWhen с диапазонамиПовторение — простой калькулятор9Циклы
Цикл ForЦикл WhileЦикл Do-WhileBreakContinueДиапазоны в циклахВложенный циклПовторение — факториалПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Kotlin