【发布时间】:2014-08-11 09:19:09
【问题描述】:
在 WWDC 2014 的高级 Swift 演讲中,演讲者给出了这个使用泛型的函数记忆器的例子:
func memoize<T: Hashable, U>( body: (T)->U ) -> (T)->U {
var memo = Dictionary<T, U>()
return { x in
if let q = memo[x] { return q }
let r = body(x)
memo[x] = r
return r
}
}
我无法理解 memo var 的生命周期。记忆化的fibonacci 函数的每次调用是否都持有对它的强引用?如果是这样,当你完成它时,你会如何释放它?
【问题讨论】:
标签: generics swift memoization