lua 小细节

阅读更多
这里收录了一下笔者到现在为止注意到的一些关于lua语言的东西
1.loadstring  loadstring的作用是动态加载代码的,意思它会将你loadstring("字符串") 动态编译成代码,(注意loadstring返回的一个function) ,比如
rest = loadstring("return ".."1".."==".."2")
print(rest())
此时将输出false,接下来是loadstring的中文问题,
rest = loadstring("return ".."测试".."==".."测试")
print(rest())
此时运行将会直接报错,为什么?因为lua在加载代码的时候 根本就没有将“测试”识别成字符串,而对于lua来说,没有所谓的中文变量所以lua根本就无法识别这个中文 此时将
rest = loadstring("return "..'"测试"'.."=="..'"测试"')
print(rest())
代码变成这样既可,代表要比较的值是一个中文,lua加载代码的之后就会正确识别了
2.可变参数
function c(...) end
可变参数都存储在一个默认的table arg之中,不过要注意的是 arg不仅多了需要传递的多变参数  还有一个代表此次传递的参数数目 比如
function c(...)  for i,v in pairs(arg) print(i.." "..v) end
c(1,2) 此时结果是
1 1
2 2
n 2

你可能感兴趣的:(lua;loadstring)