4

同じキーを持つ 2 つの値に対して数学を実行する関数を開発しようとしています。

property = {a=120, b=50, c=85}
operator = {has = {a, b}, coefficient = {a = 0.45}}
function Result(x) return operator.has.x * operator.coefficient.x end
print (Result(a))
error: attempt to perform arithmetic on field 'x' (a nil value)

問題は、関数が文字通り「operator.has.a」ではなく「operator.has.x」で計算を試みていることです。

関数 (x) return x.something end を呼び出すことはできますが、関数 (x) something.xi を実行しようとするとエラーが発生します。Lua の関数について理解を深める必要がありますが、マニュアルに記載されていません。

4

2 に答える 2

6

あなたが何をしようとしているのか正確にはわかりませんが、あなたのコードに基づいた実際のコードを次に示します。

property = {a=120, b=50, c=85}
operator = {has = {a=2, b=3}, coefficient = {a = 0.45}}
function Result(x) return operator.has[x] * operator.coefficient[x] end
print (Result('a'))

'0.9' を出力

于 2013-05-17T19:34:44.510 に答える