次の方法でローカル動的変数名を設定しています
_local["cracks"..brick.index] = ...
たとえばremoveSelfなどの変数にアクセスするにはどうすればよいですか? 私が試したこと
_local["cracks"..brick.index]:removeSelf()
_local["cracks"..brick.index]:removeSelf()
_local
値を取得するためのテーブルとしてのインデックス"cracks"..brick.index
、それを呼び出すt
t
別の値を取得するためのテーブルとしてのインデックス"removeSelf"
、それを呼び出すm
m
のメソッドとして呼び出しますt
。これは呼び出しに似ていますm(t)
それが機能するには、次のようなことをしなければなりませんでした:
_local["cracks"..brick.index] =
{
removeSelf = function(self)
--do something with self,
--which refers to the table that removeSelf is a member of (the {})
return --something if wanted
end
}
通常、メソッドはパラメーターfunction t:m() end
を暗黙的に宣言する構文で定義されself
ます。しかし、実際のt
変数がなければそれを行うことはできません。この場合はありません。
または、明示的に
local tabl = {}
function tabl:removeSelf()
--do something with self,
--which refers to the table that removeSelf is a member of (tabl)
return --something if wanted
end
_local["cracks"..brick.index] = tabl
これで質問の内容が説明されない場合は、質問にコードを追加してください。
いいえ、あなたは間違っています。これを行う方法は次のとおりです。
local myTable = {}
myTable[brick.index] = image
その後、アクセスできます:
myTable[brick.index]:removeSelf()