Lua中计算、执行字符串中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()
相关推荐
-
java代码执行字符串中的逻辑运算方法
方式一 public class Test { public static void main(String[] args) throws Exception { String str = "(a or b) and c"; str = str.replaceAll("or", "||"); str = str.replaceAll("and", "&&"); System.out.prin
-
java计算给定字符串中出现次数最多的字母和该字母出现次数的方法
本文实例讲述了java计算给定字符串中出现次数最多的字母和该字母出现次数的方法.分享给大家供大家参考,具体如下: import Java.util.Collections; import java.util.Map; import java.util.TreeMap; public class TestStringSplict { public static void main(String[] args){ String str = "aaaaaaacccccccccccccccccccccc
-
python 计算一个字符串中所有数字的和实例
如下所示: # 计算一个字符串中所有数字的和 def numsum(s): sum = 0 #定义变量,准备记录数字的和 for i in range(len(s)): #遍历字符串 if s[i] >= '0' and s[i] <= '9': #如果i处的字符属于数字字符 sum = sum + int(s[i]) #将字符转成int,求和 return sum s = input("请输入一个字符串:") print(numsum(s)) 以上这篇python 计算一
-
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
-
在Python中实现替换字符串中的子串的示例
假如有个任务: 给定一个字符串,通过查询字典,来替换给定字符中的变量.如果使用通常的方法: >>> "This is a %(var)s" % {"var":"dog"} 'This is a dog' >>> 其实可以使用string.Template类来实现上面的替换 >>> from string import Template >>> words = Template
-
python中计算一个列表中连续相同的元素个数方法
最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现,最先想到的就是itertools: import itertools a = [1,1,1,1,2,2,2,3,3,1,1,1,3] print max([len(list(v)) for k,v in itertools.groupby(a)]) 但是如果不想用itertools呢? 可以尝试以下的办法,效率还比itertools高一个数量级!
-
Lua中计算、执行字符串中Lua代码的方法
一.Lua中执行字符串 运行过程中有个问题,我有个字符串,是一个数学表达式,如何计算这个字符串表达式的值呢? 比如,local param = "7*100", 我需要的结果其实是700,但是怎么样直接计算出这个值呢?方法如下 字符串前面 加个 "return" 然后loadstring以后得到一个function 然后执行获得700的返回值,这样通过转化,得到的结果如下: 二.以字符串形式执行Lua代码 有时候,我们在代码中希望能够动态的切换上下文,改变程序的处理
-
asp.net中C#获取字符串中汉字的个数的具体实现方法
符串可以包括数字,字母,汉字或者其他的字符.使用Char类型的IsDigit静态方法可以判断字符串中的字符是否为数字,使用Char类型中的IsLetter静态方法可以判断字符串中是否为字母.我们来实现一种方法来实现判断字符串中是否为汉字,通过此方法可以计算字符串中汉字的个数,运行效果如图: 首先根据效果图设置好Form的界面和内容,Box1.Text为输入的字符串,我们对该字符串的处理,来计算汉字的个数,双击Buton控件,编辑其单击事件代码. 我们看下汉字的Unicode范围,普遍给出了0x4
-
C#动态执行字符串(动态创建代码)的实例代码
复制代码 代码如下: using System;using System.Data;using System.Configuration;using System.Text;using System.CodeDom.Compiler;using Microsoft.CSharp;using System.Reflection; namespace EvalGuy{ /// <summary> /// 本类用来将字符串转为可执行文本并执行 /// 从别处复制,勿随意更改!
-
Ruby中调用执行shell命令的6种方法
碰到需要调用操作系统shell命令的时候,Ruby为我们提供了六种完成任务的方法: 1.Exec方法: Kernel#exec方法通过调用指定的命令取代当前进程例子: 复制代码 代码如下: $ irb >> exec 'echo "hello $HOSTNAME"' hello nate.local $ 值得注意的是,exec方法用echo命令来取代了irb进程从而退出了irb.主要的缺点是,你无法从你的ruby脚本里知道这个命令是
随机推荐
- VC++操作SQLite简单实例
- 存储过程返回数组对象示例代码
- 如何使用C#在PDF文件添加图片印章
- asp.net下cookies操作完美代码
- C++删除链表中间节点的方法
- Android编程ProgressBar自定义样式之动画模式实现方法
- Ajax高级笔记 JavaScript高级程序设计笔记
- asp下最常用的19个基本技巧第1/2页
- jquery+json实现分页效果
- Windows误删文件恢复技巧
- 详解Java编程JDialog窗体的用法及实例
- 详解Java修饰符
- 从txt中读入数据到数组中(fscanf)的实现代码
- 实例讲解子网掩码的简便算法
- Python 3.x 安装opencv+opencv_contrib的操作方法
- VsCode与Node.js知识点详解
- C#中标准的IDispose模式代码详解
- .NET Core日志配置的方法
- C语言实现简单学生学籍管理系统
- Android实现图片随手指旋转功能
