一个用于简化函数记忆化的 Swift 宏。
此软件包提供了一个 @Memoize
宏,它可以自动生成任何应用它的函数的记忆化版本。记忆化是一种优化技术,它存储昂贵的函数调用的结果,并在再次出现相同的输入时返回缓存的结果。
@Memoize
memoized
前缀的函数记忆化版本使用 Swift Package Manager 将此软件包添加到您的项目中
dependencies: [
.package(url: "https://github.com/tornikegomareli/MemoizeMacro", from: "0.0.1")
]
import Memoize
@Memoize
宏应用于任何您想要记忆化的函数class Calculator {
@Memoize
func expensiveCalculation(a: Int, b: Int) -> Int {
// Simulate expensive operation
sleep(2)
return a + b
}
}
memoized
前缀来使用函数的记忆化版本let calculator = Calculator()
let result1 = calculator.memoizedExpensiveCalculation(a: 5, b: 3) // Takes 2 seconds
let result2 = calculator.memoizedExpensiveCalculation(a: 5, b: 3) // Returns immediately
@Memoize
宏生成一个私有缓存和一个带有 memoized
前缀的新函数。这个新函数在调用原始函数之前检查缓存中是否有之前计算的结果。
本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
欢迎贡献!请随时提交 Pull Request。