次のようなシンプルなクラスのシンプルな Lua ゲーム:
creature = class({
name = "MONSTER BADDY!",
stats = { power = 10, agility = 10, endurance = 10, filters = {} },
other_things = ...
})
creatureA = creature.new()
creatureB = creature.new()
creatureA.name = "Frank"
creatureB.name = "Zappa"
creatureA.stats.agility = 20
creatureB.stats.power = 12
- 何とか何とか何とか
非テーブル値はインスタンスごとに個別ですが、テーブル値はすべてのインスタンス間で共有されます。1 つのインスタンスで stats.X 値を変更すると、他のすべてのインスタンスに同じ統計テーブルが表示されます。
Q1: OO の実装に欠陥がありますか? LOOP を試してみましたが、同じ結果が得られました。私のロジックに根本的な欠陥がありますか?
Q2: クリーチャーの各インスタンスに独自の統計テーブル (およびサブ テーブル) を持たせるにはどうすればよいですか?
PS。例よりも少し複雑で、コードの他の部分がこのネストされたテーブルの実装で単純化されているため、クラス テーブルをフラット化することはできません。