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