クラスCがあります:
class C (...) { ... }
これを使用して、効率的なマップのインデックスを作成したいと考えています。最も効率的なマップは配列です。そこで、コンパニオン オブジェクトに「グローバル」「静的」カウンターを追加して、各オブジェクトに一意の ID を付与します。
object C {
var id_counter = 0
}
C のプライマリ コンストラクターでは、CI を作成するたびに、グローバル カウンターの値を記憶して増やしたいと考えています。
質問 1:どのようにそれを行う?
これで、C オブジェクトで id をインデックス配列への完全なハッシュとして使用できるようになりました。しかし、array は、特定の配列が C の ID によってインデックス付けされる map のような型情報を保持しません。
質問 2:型安全性を持たせることは可能ですか?
更新:
質問 2 の型の安全性は、2 つの関連しない int の混合を避けるために、マップのインデックスの型に関係します。もちろん、値は(型)セーフです..
質問 1 では、デフォルト コンストラクターで変数をインクリメントする方法を尋ねています。
伊:どこに置く?
id_counter += 1