1. ホーム
  2. スクリプト・コラム
  3. ルア

Luaで文字列中のLuaコードを計算し実行する方法

2022-02-12 22:24:54

I. Luaで文字列を実行する

ランタイムで質問があります。数式を表す文字列があるのですが、この文字列式の値を計算するにはどうしたらいいのでしょうか?
例えば、local param = "7*100"の場合、私が必要とする結果は実際には700ですが、この値を直接計算するにはどうしたらよいでしょうか。方法は以下の通りです。

文字列の前に "return"を付ける。
そして、loadstring の後に関数があります。
そして、実行すると戻り値700が得られるので、これを変形させると次のようになる。

II. Lua コードを文字列として実行する

コードの中で動的にコンテキストを切り替えて、プログラムの処理の流れを変えたいことがあるので、自分の意志でコードを生成し、文字列からLuaのコードを実行する必要があります

私たちのプロジェクトでは、サーバーから実行可能なLuaコードを持って降りてきて、このコードを使ってプロジェクトのリソースを更新できるようにしたいのです。

コピーコード コードは以下の通りです。

--Defining a string to use as function later
funcStr = "print('test')"
--Running it directly
loadstring(funcStr)()
--Defining a function from the string and running it
func = loadstring(funcStr)
func()