如何在Android中保存函数调用并在以后再次使用它

时间:2018-11-27 20:58:21

标签: android kotlin

让我们说我有一个函数fun myFunction(name:String, email:String){},当我调用此函数myFunction('Ali', 'ali@test.com')时,如何保存该调用并在以后使用具有相同参数的完全相同的调用呢?

2 个答案:

答案 0 :(得分:5)

将函数调用本身包装到新函数中,并通过将其分配给变量来保存它:

val savedFun = { myFunction("Ali", "ali@test.com") }

然后在需要时调用它:savedFun()

答案 1 :(得分:1)

因为问题出现在评论中

  

如何将多个函数调用保存在列表中,然后一个一个地调用它们?

如果您不想将任何参数传递给lambda,并且不关心返回值,则可以执行以下操作:

val functionList = listOf(
    { myFunction("Ali", "ali@test.com") },
    { myFunction("John", "john@doe.com") },
    { println("hello") }
)

functionList.forEach{ it() } // invoke them one by one

如果您感兴趣的话,functionList的推断类型为List<() -> Unit>