Мне нужно сохранить закрытие, но это не представляется возможным с помощью любых методов настойчивости, доступных в Swift, и я не могу найти какую-либо информацию.Есть ли способ сохранить быстрое закрытие?
3
A
ответ
3
Поскольку часть «Кода» фиксируется (скомпилирована), нет необходимости ее сохранять, вам нужно только сохранить ссылку на нее с ключевым словом или каким-либо другим идентификатором. Это может быть достигнуто с помощью словаря со ссылками на функции, например (например, фабрика функций).
Что на самом деле требует персистентности - это переменные, которые захватываются закрытием. Это эквивалентно параметрам функции.
Таким образом, вы, вероятно, должны по-разному подойти к своей проблеме и определить набор ключевых слов функций и списков параметров. Вы можете легко перенести их, а затем «выполнить» данные, передав параметры фабрике функций, связанных с ключевыми словами.
Смежные вопросы
- 1. Быстрое общее закрытие
- 2. Есть ли способ предотвратить закрытие IWorkbenchWindow?
- 3. Есть ли способ предотвратить закрытие ToolWindow?
- 4. Есть ли способ предотвратить закрытие консольного приложения?
- 5. Это быстрое закрытие?
- 6. Когда выполняется быстрое закрытие?
- 7. самообслуживание быстрое закрытие
- 8. Быстрое закрытие не работает
- 9. быстрое закрытие по ссылке?
- 10. Быстрое закрытие типа преобразования
- 11. Быстрое закрытие выражения
- 12. Есть ли способ сделать массовое/быстрое удаление в mysql?
- 13. Конвертировать быстрое закрытие на CFunctionPointer?
- 14. Быстрое открытие и закрытие csv?
- 15. Быстрое закрытие в расширении протокола
- 16. Быстрое закрытие не может переопределить
- 17. Вызов Быстрое закрытие с параметрами
- 18. Могу ли я предотвратить слишком быстрое закрытие `java.util.logging.LogManager`?
- 19. RcppArmadillo: Есть ли способ сохранить имена?
- 20. Есть ли способ сохранить состояние объекта?
- 21. Есть ли способ сохранить контакты в iOS?
- 22. Есть ли способ сохранить все состояние приложения?
- 23. Есть ли способ сохранить JavaScript DOM-манипуляции?
- 24. Есть ли способ «сохранить» результаты в Haskell?
- 25. Есть ли способ сохранить элемент UIAutomation?
- 26. Есть ли способ сохранить чистоту объекта?
- 27. Есть ли способ сохранить грязный холст?
- 28. Есть ли способ сделать XDocument Сохранить быстрее
- 29. Есть ли способ сохранить всплывающие подсказки
- 30. Есть ли способ сохранить изменения из DBSet
Я думаю, вы должны написать виртуальную машину и перевести «быстрый код» во время выполнения, если я не ошибаюсь. Swift не является языком скриптов, весь написанный нами код должен быть скомпилирован в машинный код. Таким образом, вам нужно написать систему, которая может читать скрипты, написанные в синтаксисе Swift, и переводить их в блокировки, и эта система действительно является виртуальной машиной. – MatthewLuiHK
Зачем вам это нужно? Учитывая, что закрытие должно быть определено во время компиляции, нет необходимости в сериализации закрытия. Даже если есть несколько закрытий, которые вы хотите выбрать в зависимости от некоторого значения данных, все, что вам нужно сохранить, это значение, а не фактическое закрытие – Paulw11
, можете ли вы разместить какой-то код? –