Lua中计算、执行字符串中Lua代码的方法

   这篇文章主要介绍了Lua中计算、执行字符串中Lua代码的方法,类似JavaScript中eval函数的功能,在Lua中也可以实现,需要的朋友可以参考下

  一、Lua中执行字符串

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

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


  字符串前面 加个 "return"

  然后loadstring以后得到一个function

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


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

时间: 2024-09-01 15:49:04

Lua中计算、执行字符串中Lua代码的方法的相关文章

C#中怎么执行“字符串”???

问题描述 C#中能不能像VBScript或JavaScript中那样有个eval函数,能执行字符串中的代码??? 解决方案 解决方案二:没有吧..C#是服务器端的代码..解决方案三:呵,你可以放在页面的脚本里面执行EVAL函数的啊~,

Mysql中实现提取字符串中的数字的自定义函数分享_Mysql

因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代码如下: CREATE FUNCTION GetNum (Varstring varchar(50)) RETURNS varchar(30) BEGIN DECLARE v_length INT DEFAULT 0; DECLARE v_Tmp varchar(50) default ''; se

字符串截取-C#,或者在ORACLE中如何提取字符串中的信息

问题描述 C#,或者在ORACLE中如何提取字符串中的信息 C#,或者在ORACLE中如何提取字符串中的信息,比如: string a=[123][22][3132][]...以此类推,我想要提取所有[]的后2个数字,比如[123],提取出0和23两个数字,然后所有数字相加.求高手用正则表达式,或者更好理解的方式帮忙解决下,,,,

Lua中计算、执行字符串中Lua代码的方法_Lua

一.Lua中执行字符串 运行过程中有个问题,我有个字符串,是一个数学表达式,如何计算这个字符串表达式的值呢? 比如,local param = "7*100", 我需要的结果其实是700,但是怎么样直接计算出这个值呢?方法如下 字符串前面 加个 "return" 然后loadstring以后得到一个function 然后执行获得700的返回值,这样通过转化,得到的结果如下: 二.以字符串形式执行Lua代码 有时候,我们在代码中希望能够动态的切换上下文,改变程序的处理

java中正则表达式提取字符串中日期实现代码

你可能需要从一段字符串String或者文本中抽取出或者说是过滤出日期或者时间,可以使用如下程序:  代码如下 复制代码 public String run(String text) {         String dateStr = text.replaceAll("r?n", " ");         dateStr = dateStr.replaceAll("\s+", " ");                   

asp.net中C#获取字符串中汉字的个数的具体实现方法_实用技巧

符串可以包括数字,字母,汉字或者其他的字符.使用Char类型的IsDigit静态方法可以判断字符串中的字符是否为数字,使用Char类型中的IsLetter静态方法可以判断字符串中是否为字母.我们来实现一种方法来实现判断字符串中是否为汉字,通过此方法可以计算字符串中汉字的个数,运行效果如图: 首先根据效果图设置好Form的界面和内容,Box1.Text为输入的字符串,我们对该字符串的处理,来计算汉字的个数,双击Buton控件,编辑其单击事件代码. 我们看下汉字的Unicode范围,普遍给出了0x4

asp.net中C#获取字符串中汉字的个数实例

符串可以包括数字,字母,汉字或者其他的字符.使用Char类型的IsDigit静态方法可以判断字符串中的字符是否为数字,使用Char类型中的IsLetter静态方法可以判断字符串中是否为字母.我们来实现一种方法来实现判断字符串中是否为汉字,通过此方法可以计算字符串中汉字的个数,运行效果如图: 首先根据效果图设置好Form的界面和内容,Box1.Text为输入的字符串,我们对该字符串的处理,来计算汉字的个数,双击Buton控件,编辑其单击事件代码. 我们看下汉字的Unicode范围,普遍给出了0x4

php中计算页面加载时间几种方法总结

 代码如下 复制代码 <?php //实例:计算页面运行时加载时间 //分析:页面打开时获取一个时间,加载完成时获取一个时间,运行时间即二者之差 //1.自定义函数 function fn(){  list($a,$b) = explode(' ',microtime()); //获取并分割当前时间戳和微妙数,赋值给变量  return $a+$b; } //2.获取开始时间 $start_time = fn(); //5.加载过程 for($i=0;$i<10000000;$i++){  /

java中替换去除字符串中的空格/回车/换行符/制表符

用String对象的方法replaceAll就可以了! replaceAll(String regex, String replacement)           使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串. 示例代码:  代码如下 复制代码 public class T3 { public static void main(String args[]) {  String str="aa bb cc";  System.out.prin