1

Marmalade Quick プロジェクトで ZeroBrane Studio の Project / Analyze を使い始めましたが、グローバル スコープとローカル スコープを比較するのに非常に便利です。

ただし、これは厄介です。これは、ライブラリを指しています-基本的に-未定義のグローバルとして:

.../resources/main.lua(11): first use of unknown global variable 'system'
.../resources/main.lua(12): first use of unknown global variable 'json'
.../resources/main.lua(13): first use of unknown global variable 'device'
.../resources/main.lua(14): first use of unknown global variable 'physics'
.../resources/main.lua(15): first use of unknown global variable 'color'
.../resources/main.lua(16): first use of unknown global variable 'director'
.../resources/main.lua(17): first use of unknown global variable 'key'

ライブラリ (または特定の変数名) の警告を抑制する方法はありますか?

部分的なステップとして、これをファイルの最初に入れ始めました-それは苦情を解決せず、それらを一番上に持ち上げるだけです:

local system = system
local json = json
local device = device
local physics = physics
local color = color
local director = director
local key = key

ところで、これがパフォーマンスに影響するかどうかはわかりませんか? directorグローバルをローカルに変換しているようですdirectorが、理論的には高速です...

4

1 に答える 1

2

現時点では、特定の変数で警告をオフにする方法はありませんが、警告を抑制するために使用できる回避策があります。の代わりにまたはlocal director = directorを使用できます。local director = _G.directorlocal director = rawget(_G, "director")

アクセスの高速化に関しては、ローカルを使用する方がテーブル アクセスよりも高速ですが ( Lua performance tipsの 3 ページを参照)、違いを確認するには、ループ内で多数の呼び出しを実行する必要がある可能性があります。LuaJIT は独自の最適化を行うため、パフォーマンスへの影響が変わる可能性があることに注意してください。

于 2015-04-06T04:08:27.357 に答える