【发布时间】:2010-05-09 09:28:46
【问题描述】:
我有一些 C 类:
class C (...) { ... }
我想用它来索引一张高效的地图。最有效的地图是一个数组。 所以我在伴生对象中添加了一个“全局”“静态”计数器,为每个对象提供唯一 ID:
object C {
var id_counter = 0
}
在 C 的主构造函数中,每次创建 C 时我都想
记住全局计数器值并增加它。
问题一:怎么做?
现在我可以使用 C 对象中的 id 作为索引数组的完美哈希。 但是数组不会像 map 那样保留类型信息,即给定数组由 C 的 id 索引。
问题 2:是否有可能具有类型安全性?
更新:
问题 2 中的类型安全涉及映射索引的类型,以避免混合两个不相关的整数。
值当然是(类型)安全的..
问题 1 询问如何在默认构造函数中增加变量?
即:放在哪里?
id_counter += 1
【问题讨论】:
标签: scala types hash scala-2.8 perfect-hash