2017-08-08 4 views
1

機能しない割り当てる:のLUA /インライン関数コードでテーブルを初期化するが、値がIテーブルを初期化するために、このLuaのコードを有する

table = { 
    a = 1; 
    b = myfunc(); 
    c = function() <some code> end; 
} 

このtable.c関数型を持つと私はtable.c() を使用する必要が後..演算子を使用してprintステートメントを実行して結果を取得します。しかし、代わりにtable.cを使用したいと思います。

table.cに割り当てられた関数の戻り値を取得できる方法はありますか?そのため、型は関数ではなく、テーブル外の関数を定義する必要はありませんか?

答えて

2

table.cに関数の戻り値が含まれるようにするには、関数の戻り値を戻り値に割り当てる必要があります。代わりに、関数自体に代入します。

関数の戻り値を取得するには、その関数を呼び出す必要があります。実際にはbと変わりはありません。 myfuncは関数です。 myfunc()はその関数を呼び出してその戻り値を格納しています。

しかし、原因のLuaの文法に、あなたが定義している関数を呼び出すことは、それを呼び出して、あなたは()で式を構築する機能をラップする必要があることが必要です:

c = (function() <some code> end)(); 

このコースの値のみが含まれますテーブルが構築された時点でのその関数の値。

関連する問題