問題タブ [lua-5.3]

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.

0 投票する
1 に答える
1349 参照

lua - Lua 5.3で整数を浮動小数点数に保つ方法

Lua 5.2 では、すべての数値が double です。上記のコードの出力は次のとおりです。

Lua 5.3 は整数をサポートし、整数表現と浮動小数点表現の間で自動変換を行います。同じコードの出力:

float の結果を取得したい。2.0^64動作しますが、リテラルでない場合はどうなりますか:

考えられる解決策の 1 つは、数値を1: で除算することです。(n/1)^64これは、/除算ではオペランドが常に float に変換されるためですが、より洗練された解決策を探しています。

Lua 5.3.0 (work2)でテスト済み。

0 投票する
1 に答える
957 参照

c - lua_Integer および lua_createtable (テーブルサイズ制限)

Lua 5.3 では、C API のテーブル関連の関数は receive と returnlua_Integerです。

しかし、lua_createtableそれでも受け取りintます。

以下の関数の例では、ソース テーブルの長さを使用して、同じサイズのコピーを作成しています。

ただし、警告を消すにはキャストが必要です。

警告: 'lua_Integer' から 'int' への変換により、その値が変更される可能性があります [-Wconversion]

Luaメーリングリストで検索すると、Lua 5.2に関する次のスレッドが見つかりました(以前のバージョンにも当てはまると思います):

引用: Roberto Ierusalimschy (2012 年 8 月 7 日)

テーブルのサイズはすでに 2147483647 要素に制限されています。Lua は内部的に 'int' を使用してすべての配列にインデックスを付けます (文字列/バイト配列を除く)。どこでも符号なしの値 (size_t など) を扱うのは面倒です。ptrdiff_t には何の保証もありません。

long longこれは、 forを使用する Lua 5.3 にも当てはまりlua_Integerますか? int上記の例で使用されているfromへのキャストはlua_Integer、Lua 5.3 で安全ですか?

0 投票する
1 に答える
2140 参照

lua - Lua 5.3でlldを印刷する方法

最初の引数 (文字列である必要があります) で指定された説明に従って、可変数の引数のフォーマットされたバージョンを返します。フォーマット文字列は、ISO C 関数 sprintf と同じ規則に従います。唯一の違いは、オプション/修飾子*, h, L, l, n, and pがサポートされていないことと、追加のオプションq.

Lua 5.3 は をサポートしていません。Lua 5.3lldで印刷するにはどうすればよいlldですか?

0 投票する
0 に答える
241 参照

c - Lua UTString はどのようにして文字列の最大アライメントを保証しますか?

私は lua の (5.3.0) ソース コードを読んでlobject.hいます。

そこにそのような方法を使用する理由についての良い答えを見つけました。しかし、私は疑問に思っていますensures maximum alignment for strings、それはどういう意味ですか? なぜ必要maximum alignmentで、どのように確保するのですか?

0 投票する
0 に答える
269 参照

lua - Lua テスト スイート: vxWorks 6.9 でコルーチン テストが失敗する

vxWorks 6.9 に Lua 5.3 を統合しようとしています。現在、システムとの Lua の統合を確認するためにテスト スイートを実行しているときに問題が発生しています。lua.org Web サイト ( http://www.lua.org/tests/ ) で提案されているテストを実行しています。正確に何が失敗するのかを理解しようと何度も試みましたが、それほど簡単ではありません。「coroutine.lua」ファイルの実行中にシステムが再起動するか、ページ フォールトを返してクラッシュします。他の誰かがこのタイプの統合を試みましたか?

これらの定義で luaconf.h を編集しました。

助けてくれて本当にありがとうございます :)

編集:テストに合格するまれなケースがいくつかあります...その後、システムは通常、「goto.lua」の実行中に同じ動作でクラッシュします

LUA_COMPAT_5_1編集: と を定義しても再び失敗しますLUA_COMPAT_5_2。動作は常に同じです: 「coroutine.lua」テストまたは「goto.lua」テストの実行中のページ フォールト

0 投票する
1 に答える
473 参照

lua - Lua: ローカルの package.path

package.pathLuaでは、ローカルスコープのみに適用するように定義する方法はありますか?

package.path以下の例のように、ローカル変数に保存してスクリプトが終了する前に復元できることは理解していますが、よりクリーンな方法はありますか?

0 投票する
2 に答える
430 参照

lua - package.loaded の関数を置き換えます

呼び出しpackage.loaded後に特定のライブラリのすべての関数をどのように置き換えることができますか?require

関連するテーブルを反復しようとしましたが、テーブルが空になります。

0 投票する
2 に答える
1823 参照

lua - Luaでフィボナッチ数列を作成するには?

フィボナッチ数列を作成し、すべての偶数の合計を返す小さなスクリプトを作成しました。

この関数は、次のシーケンスを作成します。 1, 2, 3, 5, 8, 13, 21, 34, 55

そして、その偶数の合計を返します:44

ただし、ストップ インデックスを から に変更する10と、値が大きくなりすぎるため、100返さfor i=3, 100 doれる合計は負になります。-8573983172444283806私のコードが に対して機能し、 に対して機能10しないのはなぜ100ですか?

0 投票する
0 に答える
149 参照

lua - dofile は機能しますが、スタック トレースバックを呼び出します

main.lua

たとえば .lua

結果:

しかし、私はなぜ理解していないのですか?

0 投票する
1 に答える
1045 参照

lua - 読み込まれた Lua ファイルを特定のスコープで実行する

プロジェクト鉱山の構成形式として Lua を使用しています。次の不自然な例があるとしましょうconf.lua

さて、自明ですが、もちろん、このファイルを次のようにロードできます。

ただし、これに関する問題は、これらの定義がグローバル名前空間に設定されていることです。これは望ましくありません。さらに、さまざまな変数全体にアクセスすることが難しくなります (たとえば、構成変数のセットをループします)。1 つの解決策は、次のように書き直すconf.luaことです。

conf.lua次に、次のコードをロードします。

ただし、明らかな理由から、これは理想的ではありません。ユーザーはコンマを追跡し、 を書きlocal、最後にテーブルを返すことを忘れないようにする必要があります。conf.luaなんらかのカスタムスコープで実行させる方法があればいいのですが。