El Código A es de la rama final del proyecto de muestra oficial.
Creo que puedo simplificarlo, así que escribo el Código B y el Código C, pero en realidad están equivocados, ¿por qué?
Por cierto, el código D se puede compilar.
Código A
val onPeopleChanged: (Int) -> Unit = { viewModel.updatePeople(it) }Código B
val onPeopleChanged = { viewModel.updatePeople(it) }Código C
val onPeopleChanged = {it -> viewModel.updatePeople(it) }Código D
val onPeopleChanged = {it:Int -> viewModel.updatePeople(it) }De la documentación oficial parece que Kotlin no puede inferir los tipos en la expresión lambda: consulte el ejemplo 4 aquí https://play.kotlinlang.org/byExample/04_funcional/02_Lambdas