問題タブ [lua-5.2]

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 投票する
3 に答える
2856 参照

module - Lua5.2で2+モジュールが相互に再帰的に参照するようにするための推奨される方法

持つ方法はありますか

  • A2つのLuaモジュール(それらをと呼びましょうB
  • 各モジュールは他のモジュールの機能を使用するため、相互に機能する必要がありrequireます
  • 3番目のモジュール(それを呼びましょうC)は使用できますAが、B例えば

C.lua

  • D両方を必要とするが必要とBしないA、および/またはE両方Aを必要とする別のモジュールが存在する可能性がありますB
  • また、そのメンバーABグローバル名前空間に追加しないでください。
  • moduleand関数の使用は避けてくださいsetfenv(Lua 5.2で非推奨)

関連Lua-あるlibを別のlibから使用するにはどうすればよいですか?(注:このソリューションは循環依存関係を処理しません。)

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

lua - Lua 5.2 への移植、LUA_GLOBALSINDEX の不具合

コード例: http://lua-users.org/wiki/SimplerCppBinding

コードがあります:

Lua 5.2 では、LUA_GLOBALSINDEX は存在しなくなりました。代わりに lua_setglobal() と lua_getglobal() があります。


次のように考えるのは正しいですか。

...は、次の正しい置き換えです。

私はLuaに慣れていないので、8か月間使用していません。ドキュメントを見て、これは正しいと思いますが、検証をお願いします。

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

lua - Luaは複数のクロージャーインスタンスを作成します

ファイルにいくつかの lua コードがあります。このコードの複数のクロージャ インスタンスを作成し、それぞれに異なる _ENV 上位値を設定したいと考えています。luaL_loadfileを使用してファイルをロードし、最初の上位値を異なるテーブルで N 回設定して、N 個のインスタンスを作成できます。しかし、これはファイルをN回ロードしてコンパイルしませんか?

ロードファイルがない場合を除いて、私がやりたいことと同等のluaは次のとおりです

これを行うより良い方法はありますか?

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

string - (一見) 無効な Lua パターンに一致する可能性があります

Lua で一致グループを繰り返すことができないことはわかっています。たとえば、2 つの連続する を一致させたい場合"45"、次のことはできません。

印刷されますnil(一致が見つかりません)。

ただし、find(...)エラーは報告されないため (無効なパターン"%""(%d"エラーが生成されるため)、パターン"(%d%d)+" 有効なパターンであると信じるようになります。

"(%d%d)+"が有効なパターンである場合、それは何に一致しますか? そうでない場合、エラーが発生しない特別な理由はありますか?

0 投票する
3 に答える
171 参照

lua - 'a' が 47 の場合、'if a == 40 or 42' が 'true' と評価されるのはなぜですか?

私はLuaが初めてで、コードでこのタイプの何かを実行しようとしていますが、うまくいきません。ここでは、構文とすべてが完全に正しいのですが、elseif 条件がトスになり、条件チェックがうまくいきません。

したがって、このために得られる出力は次のとおりです。値= 40または42、これは間違っています

私が使用しているLuaのバージョンは5.2です

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

lua - luaで画像/色を表示するにはどうすればよいですか

私はこの問題を抱えており、解決策を見つけることができません。可能であれば(タフである必要はありません)いくつかのウィンドウに画像を表示し、キーボードからイベントを送信してページ全体に移動したいと考えています。

問題は、セットアップに統合できないため、LÖVE フレームワークを使用できないことです。そのため、Lua api でそうする必要があります。

ここにいる誰かがそれについて知っていますか?また、色と画像の操作をサポートするために、ある種の追加のライブラリをインストールする必要がありますか?

知識を共有していただきありがとうございます。

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

mysql - ペアが一致する場合、セルの値を更新します

luasql を使用しています。このタイプのテーブルが 2 つあります。

IPINFO

および別のテーブル ipnstats:

ここで私が達成しようとしているのは、テーブル内の両方のインデックス (と) が一致する場合にのみipnstats、私のテーブルで の値used_timesが更新されるということです。私の挿入/更新コマンドは次のようになります。nicknameipstats_id

次に、変数を使用してこの文字列をフォーマットしています。しかし、これはテーブルに必要な更新を提供していません。テーブルにデータを挿入し続けるだけです。

どんな助けでも大歓迎です。

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

lua - Luaの制御フロー

私は非常に一般的であるに違いないと思う問題を抱えており、あなたのほとんどはそれに直面しているでしょう。私はluaでプログラムを作成しました。たとえば、main.luaは、キーイベントを受信すると、座標を変更してジオメトリ図を表示する必要があります。このluaコードはreg.cを呼び出し、そこで一種のレジスターになります。現在、reg.ciには、押されたキーを受け取り、それをキー処理を担当するlua関数に渡す関数エンジンがあります。しかし、キーイベントが発生するまでに、luaコードは登録を完了して終了するため、engine()からの呼び出しは不正なメモリアクセスになり、セグメンテーション違反が発生します。

また、lua呼び出しをreg関数にぶら下げたり、他の場所からエンジン関数を呼び出したりすることはできないと思います。

次に、解決策は何であるか、これを案内してください。


@jacob:これが私が達成しようとしていることのプロトタイプです:

さて、key_handlerに入ると、彼がポイントを描くのに忙しい間、失敗状態が発生しない限り、そしてそれまで、私はその時まで押されたキーを受け取ることができません。

この説明がもっと簡単で私の主張を理解し、他の人が問題を理解するのに役立つことを願っています。本当に申し訳ありませんが、表現したり、他人に理解してもらうのは苦手です。

もう1つ、C構文に従って説明しましたが、これはluaで完全に実装されています。

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

c++ - 印刷機能をリダイレクトするLua5.2

重複の可能性:
埋め込まれたLuaのprint()のリダイレクト/再定義

私はLuaを初めて使用し、かなり混乱しています。私はこれを見ましたが、5.2で動作するかどうかはわかりません。

_ENVテーブル(?)について読んだことがありますが、これがそれと関係があるかどうかはわかりません。

次に、質問に移ります。C/ C ++で、Lua 5.2の組み込みの印刷関数をリダイレクトして、独自のC / C ++関数を呼び出すにはどうすればよいですか?

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

c++ - Lua c-api: lua_pushcclosure コールバックに関与するコルーチン/スレッドを識別する方法は?

Lua スクリプトを実行しているどのスレッド (コルーチン) が lua_pushcclosure 呼び出しの起点にあるかを知る方法はありますか?

lua スレッドに関連するもの (遅延一時停止/再開、またはプライベート スレッド変数) を管理するには、コールバックに関与するスレッドを特定する必要があります。lua_gettop を使用して作成するときにスレッド インデックスを取得できることはわかっていますが、それを使用する方法が見つからないため、Lua スクリプトから lua_pushcclosure 呼び出しが発行されたときにスレッドを識別するのに役立ちます。

私の現在のシステムでは、ネストされたスクリプト呼び出しが許可されているため、スクリプトは他のスクリプトを実行できます (ネストされたスクリプト呼び出しごとに、同じ lua_state を持つ新しいスレッドが作成されます。したがって、スタック内の複数のスレッド エントリを取得するために lua_state が使用されます)。

Lua5.2を使用しています