1

私は Lua C API をいじくり回してきましたが、自分ではよくわからないことに出くわしました。

ええと、異なるメタテーブルを持つ複数の lightuserdata を持つことはできないことは承知していますが、ポインターが同じ型であっても、個々のメタテーブルを持つ異なる C モジュールに lightuserdata を持つことは可能ですか?

例えば。

モジュール A : lightuserdata は整数型 + メタテーブル A を指します モジュール B : lightuserdata は整数型 + メタテーブル B を指します

モジュール B がモジュール A の lightuserdata のメタテーブルを上書きしないことを願っています。

これが起こるかどうか誰でも知っていますか?

4

1 に答える 1

1

Lightuserdata は個別のメタテーブルを持つことはできません。すべての lightuserdata 値は、最初は nil である同じメタテーブルを持ちます。lightuserdata 値にメタテーブルを指定すると、すべての lightuserdata 値に設定されます。

個々のメタテーブルを持つことは、通常の完全なユーザーデータの目的です。完全なユーザーデータを使用するだけでよく考えないでください。

于 2013-09-18T11:33:26.260 に答える