問題タブ [meta-method]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - _ENV を介して「名前空間を使用して」C++ をエミュレートする
ファイルがある場合foo.lua
:
そして、bar.lua
私はコードを多用しています。いつもfoo.lua
入力foo.add()
するのが面倒で、ただ書くことを好むのでadd()
、bar.lua
これを追加できます。
しかし、多くのファイルから多くの値をエイリアスすることを含めると、それは苦痛になり始めます。C++ では、これを回避する方法があります。
lua では、次のようにこの機能をエミュレートできると考えていました。
私が言えることから、スコープを尊重しているため、以下のコードのようなものがうまく機能します。
実際、以下のコードは機能しません。lua replを介してコードを実行していました。以下のコード スニペットを lua ファイルに記述したところ、目的の結果が得られませんでした。
これを後悔する理由はありますか?( にも当てはまる理由を除くusing namespace
)
lua - 割り当てられた値が突然消えました。説明はありますか?
1.既に に割り当てv
てN[i]
印刷しましたが、それでも 10t[0]
になりましたnil
。
__newindex
2.ループに入れないとメタメソッドが動かないのはなぜですか? (ループの外に置くとt[0] = 10
、while
ループ内のメタメソッドも動かなくなります)