Lua学习随笔之loadstring
2014-02-13 17:29
295 查看
myTable = {7,1,13,6,89,4,56,2,54,6}
function GetMin(theTable)
myString="myValue=math.min("
--对myString进行初始化赋值:myValue=math.min(
for index,value in ipairs(theTable) do
myString=string.format("%s%d%s",myString,value,",")
end
--将myTable中的数字依次传入myString字符串中,显示为:myValue=math.min(数字1,数字2,数字3,...)
--print(myString)
--这里我们得到的结果将会是:myValue=math.min(7,1,13,6,89,4,56,2,54,6,
myString=string.sub(myString,1,string.len(myString)-1)
--对myString取子串重新赋值去除最后的","
--print(myString)
--这里我们得到的结果将会是:myValue=math.min(7,1,13,6,89,4,56,2,54,6
myString=string.format("%s%s",myString,")")
--myString="myValue=math.min(7,1,13,6,89,4,56,2,54,6)"
--给myString字符串加上最后的")"
--print(myString)
--这里我们得到的结果将会是:myValue=math.min(7,1,13,6,89,4,56,2,54,6)
loadstring(myString)()
--loadstring并非myValue=math.min(7,1,13,6,89,4,56,2,54,6)当作一个字符串执行,而是将myString后面的内容当成一个函数执行从而获取到myValue的值
print(myString)
print(myValue)
return myValue
end
GetMin(myTable)
一开始一直搞不明白loadstring执行的是什么,重新编写一段例子进行调试对比
a="Hello World"
b="print(a)"
print(b)
loadstring(b)()
显示结果:
print(a)
Hello World
从上面的调试,可以看出来如果使用loadstring执行的话会把b的值当作一个函数执行而非一个字符串
function GetMin(theTable)
myString="myValue=math.min("
--对myString进行初始化赋值:myValue=math.min(
for index,value in ipairs(theTable) do
myString=string.format("%s%d%s",myString,value,",")
end
--将myTable中的数字依次传入myString字符串中,显示为:myValue=math.min(数字1,数字2,数字3,...)
--print(myString)
--这里我们得到的结果将会是:myValue=math.min(7,1,13,6,89,4,56,2,54,6,
myString=string.sub(myString,1,string.len(myString)-1)
--对myString取子串重新赋值去除最后的","
--print(myString)
--这里我们得到的结果将会是:myValue=math.min(7,1,13,6,89,4,56,2,54,6
myString=string.format("%s%s",myString,")")
--myString="myValue=math.min(7,1,13,6,89,4,56,2,54,6)"
--给myString字符串加上最后的")"
--print(myString)
--这里我们得到的结果将会是:myValue=math.min(7,1,13,6,89,4,56,2,54,6)
loadstring(myString)()
--loadstring并非myValue=math.min(7,1,13,6,89,4,56,2,54,6)当作一个字符串执行,而是将myString后面的内容当成一个函数执行从而获取到myValue的值
print(myString)
print(myValue)
return myValue
end
GetMin(myTable)
一开始一直搞不明白loadstring执行的是什么,重新编写一段例子进行调试对比
a="Hello World"
b="print(a)"
print(b)
loadstring(b)()
显示结果:
print(a)
Hello World
从上面的调试,可以看出来如果使用loadstring执行的话会把b的值当作一个函数执行而非一个字符串
相关文章推荐
- lua面向对象学习随笔 --类与实例
- Lua程序设计(第2版)第四章学习随笔——语句
- lua学习随笔 (1)
- Lua程序设计(第2版)第六章学习随笔——深入函数
- Lua程序设计(第2版)第二章学习随笔——类型和值
- C/C++ 调用 Lua (学习随笔)
- lua学习随笔
- Lua程序设计(第2版)第三章学习随笔——表达式
- day22 python学习随笔
- shiro学习随笔【四】session过期报 org.apache.shiro.session.UnknownSessionException: There is no session with id
- shiro学习随笔【五】自定义生成会话ID--SessionIdGenerator
- shiro学习随笔【五】自定义生成会话ID--SessionIdGenerator
- c++11的学习随笔
- Lua 学习小知识点总结
- lua学习初探【一】
- C#反射Reflection学习随笔(AX)
- uLua 学习笔记 之一 lua脚本 打包与读取
- 深度学习(DL)与卷积神经网络(CNN)学习随笔-05-基于Python的LeNet之CNN
- Lua学习笔记(2): 协程
- 脚本语言对比学习随笔