Как вы могли бы ожидать, что функции будут вести себя?
Первая имеет явный тип функции (String) -> Unit
.Таким образом, вам не нужно указывать тип аргумента String
внутри лямбды.Вы можете просто использовать it
( неявное имя для одиночных аргументов лямбда-выражений) в качестве String
.
Во втором не указывается тип, и вам нужно сообщить компилятору, чтовведите ваш лямбда-параметр, который вы сделали с user: String ->
.Обратите внимание, что более идиоматично перемещать эту часть в строку с открывающей скобкой:
val printFunction2 = { user: String ->
println("Hello, $user!")
}
В противном случае я не вижу здесь ничего необычного.Дайте мне знать, если вам нужны дальнейшие разъяснения.