Lua中计算、执行字符串中Lua代码的方法(lua中string.gsub)怎么可以错过

随心笔谈2年前发布 admin
219 0 0

文章摘要

这篇文章介绍了在Lua中处理字符串表达式和从字符串中执行代码的两种方法。首先,文章提到可以通过在字符串前加`return`并使用`loadstring`来计算字符串表达式的值,例如`"7*100"`可以被转换为函数并调用以得到结果。其次,文章讨论了从字符串中执行Lua代码的技术,特别是在需要动态更新项目资源时的应用场景。通过这种方法,可以在代码中动态生成和执行代码,避免了先有鸡还是先有蛋的问题。总结来说,文章重点介绍了如何将静态字符串转化为动态代码,并展示了这种技术在实际开发中的应用价值。



一、Lua中执行字符串

运行过程中有个问题,我有个字符串,是一个数学表达式,如何计算这个字符串表达式的值呢?

比如,local param=”7*100″, 我需要的结果其实是700,但是怎么样直接计算出这个值呢?方法如下

Lua中计算、执行字符串中Lua代码的方法(lua中string.gsub)怎么可以错过

字符串前面 加个 “return”

然后loadstring以后得到一个function

然后执行获得700的返回值,这样通过转化,得到的结果如下:

Lua中计算、执行字符串中Lua代码的方法(lua中string.gsub)怎么可以错过

二、以字符串形式执行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()

© 版权声明

相关文章