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
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的值当作一个函数执行而非一个字符串