代码A来自官方示例项目的末端分支(项目链接)。
我认为我可以简化它,所以我编写了代码B和代码C,但事实上它们是错误的,为什么?
顺便提一下,代码D可以编译。
代码A
val onPeopleChanged: (Int) -> Unit = { viewModel.updatePeople(it) }
代码 B
val onPeopleChanged = { viewModel.updatePeople(it) }
代码 C
val onPeopleChanged = {it -> viewModel.updatePeople(it) }
代码 D
val onPeopleChanged = {it:Int -> viewModel.updatePeople(it) }
val onPeopleChanged = viewModel::updatePeople
。这行代码可以翻译成:onPeopleChanged
是将viewModel::updatePeople
赋值给它的一个变量。 - IR42