quackBehavior?.let {
it("I want print this message")
}
Лямбда, которую вы передали let
, будет вызываться, только если quackBehaviour != null
. Это так, потому что вы используете оператор безопасного вызова ?.
, который будет вызывать функции только для ненулевого получателя.
Поскольку вы не вызываете printMessage
, где вы инициализируете quackBehaviour
, он остается null
.
Итак, чтобы исправить это, вызовите ваши функции следующим образом:
fun main() {
printMessage()
a()
}
Необязательно:
Вы можете упростить свой код, например, так: :
fun main() {
var quackBehavior: (String) -> Unit = {
println(it)
}
quackBehavior("I want print this message")
}