有什么方法可以保持 Swift 关闭?

Is there any way to persist a Swift closure?

我需要持久化闭包,但似乎无法使用 Swift 中可用的任何持久化方法,而且我似乎找不到任何信息。

由于闭包的 "Code" 部分是固定的(已编译),因此无需保留它,您只需要使用关键字或其他标识符保留对它的引用。例如,这可以使用带有函数引用的字典(即函数工厂)来实现。

真正需要持久化的是闭包捕获的变量。这相当于一个函数的参数。

所以基本上,您可能应该以不同的方式处理您的问题并定义一组函数关键字和参数列表。通过将参数传递给与关键字关联的函数工厂,您可以轻松地保存这些数据和以后 "execute" 数据。