ホームページ  >  記事  >  バックエンド開発  >  gopher-lua を使用して、事前定義されたテーブルをパラメータとして受け取り、Lua スクリプトが関数内でアクセスできる Lua 関数を定義するにはどうすればよいですか?

gopher-lua を使用して、事前定義されたテーブルをパラメータとして受け取り、Lua スクリプトが関数内でアクセスできる Lua 関数を定義するにはどうすればよいですか?

PHPz
PHPz転載
2024-02-09 20:57:08889ブラウズ

如何使用 gopher-lua 定义一个 Lua 函数,该函数有一个预定义的表作为参数,Lua 脚本可以在该函数中访问该表?

php エディタ Xiaoxin は、gopher-lua を使用して、Lua 関数内で事前定義されたテーブル パラメーターを持つ関数を定義し、関数内のテーブルにアクセスする方法を紹介します。 gopher-lua は Go 言語で実装された Lua インタープリターで、Go プログラムに Lua スクリプトを埋め込んで実行できます。合理的なコード設計と使用を通じて、この目標を簡単に達成できます。次に、その方法を詳しく説明します。

質問内容

Go 関数を定義してグローバルにする方法を知っています (ドキュメント内の Double の例)。しかし、この関数のパラメータが事前定義されたテーブルである必要がある場合はどうなるでしょうか?

リーリー

IMAP サーバー Dovecot は、上記のようなものを提供します: https://doc.dovecot.org/configuration_manual/authentication/lua_based_authentication/#examples

また、テーブル (またはユーザー データ) を備えた事前定義関数も提供したいと考えています。しかし、これを達成する方法が本当にわかりません。

テーブルをグローバルにするのは簡単 (L.SetGlobal(...)) ですが、それを期待される関数に追加するにはどうすればよいでしょうか?

Go に関数を追加する

リーリー

誰かが私にインスピレーションを与えてくれれば素晴らしいです:-) 事前に感謝します

解決策

@koyaanisqatsiの回答に基づいて、これをGoで機能させる方法を考え出しました。

Go コード例:

リーリー

sample.lua ファイル:

リーリー ###結果:### リーリー

以上がgopher-lua を使用して、事前定義されたテーブルをパラメータとして受け取り、Lua スクリプトが関数内でアクセスできる Lua 関数を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。