コードを含む複数のファイル (main.lua) があり、いくつかの変数と関数をグローバルに宣言する場合。これらの変数と関数はすべてのファイルでグローバルですか? または、どのファイルからでもアクセスできますか? また、グローバル変数と関数だけを使用しても問題はありますか? ディレクタークラスを使用しています
4 に答える
グローバルは定義上は悪くありませんが、一般的には、本当にデータを共有する必要がある場合にのみ使用する必要があります。
そうしないと、対話するべきではないコードの断片になってしまいますが、予期しない方法で変数を共有します (一時変数などを考えてください)。
最善の方法は、変数を絶対に共有する必要がない限り、すべてをローカルに宣言することです。
これを読んでください(Corona Labsの公式推奨事項):
http://www.coronalabs.com/blog/2013/05/28/tutorial-goodbye-globals/
基本的に、次のことをお勧めします。
グローバル変数を使用しないでください
モジュール間で vars にアクセスする場合は、次のようにします。
「モジュール間」変数を格納する新しいモジュールを作成します。
mydata.lua
--my global space
local M = {}
return M
モジュールを他のモジュール内で使用します。
main.lua内
local myData = require( "mydata" )
myData.myVariable = 10
director:changeScene("other")
other.luaで
local myData = require( "mydata" )
print(myData.myVariable)
結果: 10
お役に立てれば。
複数の lua ファイルがあり、互いに情報を使用できるようにする必要がある場合は、lua のモジュール システムを使用する必要があります。これが設計されたものです。
ここでドキュメントを読むことができます: http://www.lua.org/manual/5.1/manual.html#5.3