Generation 理解
先从 handle 继续展开 —— 假设我们通过一个 handle 定位到了 0x0001 这个位置(当然,不一定是真的指一块内存地址),然后可以爽使用,在 manager 进行释放这块空间之后,那么当前这个 handle 应当失效,可是如果此时我们重新申请了一个空间刚好就是 0x0001 这个位置,往里面写了新的数据.那么旧的 handle 就重“重新”变成了一个有效的 handle 可以进行数据的访问.
这很坏,所以会引入 generation 这个字段来进行区分 —— 即使我们使用的是同一个 handle,但是如果现在那个 slot 的 generation 和我的不一致,说明依旧我持有的是 invalid handle
(这有一点像是并发当中我们遇到的 「ABA 问题」
总之可以理解成在单纯比对 index 的时候加上版本号来进行检查,总之就是加一个字段来进行判断(