是否可以从另一个 lambda 调用一个 lambda?
Is it possible to call a lambda from another lambda?
我正在尝试以这种方式从另一个 lambda 调用一个 lambda:
fun fetch(
onSuccess: (result: Any, onSet: () -> Unit) -> Unit
) {
remoteConfigInstance.fetchAndActivate()
.addOnCompleteListener { task ->
if (task.isSuccessful) onSuccess(task.result, ()) // <- Here is the issue
}
}
我尝试像这样调用 onSet
lambda 时出错。有解决这个问题的正确方法吗?
问题只是 ()
不是 lambda。将其替换为 {}
指出的答案是完全正确的,作为改进代码的潜在方法,请考虑以下选项:
fun fetch(
onSuccess: (result: Any, onSet: (() -> Unit)? ) -> Unit) {
remoteConfigInstance.fetchAndActivate()
.addOnCompleteListener { task ->
if (task.isSuccessful) onSuccess(task.result, null) // <- here you can now pass null, instead of an actual empty lambda
}
}
如果您不想做任何事情,它允许您改为使用 null
我正在尝试以这种方式从另一个 lambda 调用一个 lambda:
fun fetch(
onSuccess: (result: Any, onSet: () -> Unit) -> Unit
) {
remoteConfigInstance.fetchAndActivate()
.addOnCompleteListener { task ->
if (task.isSuccessful) onSuccess(task.result, ()) // <- Here is the issue
}
}
我尝试像这样调用 onSet
lambda 时出错。有解决这个问题的正确方法吗?
问题只是 ()
不是 lambda。将其替换为 {}
fun fetch(
onSuccess: (result: Any, onSet: (() -> Unit)? ) -> Unit) {
remoteConfigInstance.fetchAndActivate()
.addOnCompleteListener { task ->
if (task.isSuccessful) onSuccess(task.result, null) // <- here you can now pass null, instead of an actual empty lambda
}
}
如果您不想做任何事情,它允许您改为使用 null