Что выведет код Junior Функции, расширения и scope-функции обновлено

Параметры по умолчанию и именованные аргументы

Вопрос

Что выведет код? По строке на каждый вывод.

fun greet(name: String = "гость", greeting: String = "Привет", mark: String = "!") =
    "$greeting, $name$mark"

fun main() {
    println(greet())
    println(greet("Аня"))
    println(greet(mark = "?"))
    println(greet(greeting = "Здравствуйте", name = "Борис"))
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: Привет, гость!, Привет, Аня!, Привет, гость?, Здравствуйте, Борис! Не переданные параметры получают значения по умолчанию.

Что выведет

Привет, гость!
Привет, Аня!
Привет, гость?
Здравствуйте, Борис!

Разбор

Не переданные параметры получают значения по умолчанию. Именованные аргументы позволяют пропустить любые параметры и передать остальные в любом порядке. Перегрузки для этого не нужны.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.