🗒 Задача¶
При входе в приложение высвечивается приветствие. Представим, что мы пишем функцию, которая будет выводить приветствие с именем пользователя на экран (в нашем случае в консоль). Текст приветствия может меняться в зависимости от времени суток. Так, например, выводится приветствие при входе в приложение Сбербанка.
Приветствие и имя пользователя должны храниться в отдельных переменных. Вывести в консоль два приветствия (для дня и для вечера), перезаписывая данные в одну переменную.
❌ Ошибки¶
-
используют конкатенацию вместо интерполяции
-
помещают пробелы и запятые в переменные с приветствием — нужно инициализировать только значениями
✏️ Комментарии¶
В целом это пока довольно базовые задачи. Продвинутыми способами решать не запрещается, но хочу обратить внимание, что не стоит усложнять ради усложнения. Такой подход на реальной практике сыграет злую шутку. Там, где можно сделать проще – лучше сделать проще, но в рамках ТЗ.
Все корректно, используется интерполяция.
Еще хочу добавить на будущее - проставлять пустую строку между блоком с объявлением переменных и всем остальным кодом. Так код будет выглядеть менее монолитно и улучшится читабельность.
Предлагаю использовать все фичи Kotlin)
Во-первых мы предполагаем, что приветствие может храниться в базе, может быть локализовано - это должно быть только текстовое значение. Без пунктуации и другого оформления.
Во-вторых вытекает более подходящее здесь использование интерполяции. Где в строку передаются только значения.
🧾 Решение¶
fun main() {
val person = "Роман"
var greeting = "добрый день!"
println(person + ", " + greeting)
greeting = "добрый вечер!"
println("$person, $greeting")
}
fun main() {
var greeting = ""
val username = "Василиса"
val timeOfDay = getTimeOfDay()
when (timeOfDay) {
"день" -> greeting = "Добрый день, $username!"
"вечер" -> greeting = "Добрый вечер, $username!"
else -> greeting = "Здравствуйте, $username!"
}
println(greeting)
}
fun getTimeOfDay(): String {
val isDaytime = true
return if (isDaytime) "день" else "вечер"
}
}