试图理解Lua的简单代码
我和Lua有点麻烦。问题是:有些Lua代码我知道它们是做什么的,但我不理解它们,所以如果教授让我解释它们,我就无法做到。 你能帮我吗试图理解Lua的简单代码,lua,lua-table,lua-patterns,Lua,Lua Table,Lua Patterns,我和Lua有点麻烦。问题是:有些Lua代码我知道它们是做什么的,但我不理解它们,所以如果教授让我解释它们,我就无法做到。 你能帮我吗 我知道这段代码将整数部分与小数部分分开,但我不理解“(%d*)(.?*)$”部分 int, dec = string.match(tostring(value), "(%d*)(%.?.*)$") 此代码将文本文件中的所有数据插入表中,该文本文件是按照以下模型编写的{name=“John”,age=20,sex=“Male”)。我不明白的是,我如何知道函数加载
“(%d*)(.?*)$”
部分
int, dec = string.match(tostring(value), "(%d*)(%.?.*)$")
entry=entry
,我不知道我是否理解了它的确切含义:我想它从文件中获取文本作为一段Lua代码,输入后的所有内容都被发送到函数项中,插入它在桌子上,对吗
function entry(entrydata)
table.insert(data, entrydata)
end
thunk = load(text_from_file, nil, nil, {entry = entry})
thunk()
就是这样。如果可能的话,请帮助我理解这两段Lua代码,我需要展示整个程序的运行情况,如果教授问我代码,我想确定所有的事情。对于第一个问题,你需要了解一些和 模式
(%d*)(.?*)$
由两个较小的模式组成。%d*
和%。?*
。最后的$
仅表示要在字符串到字符串(值)
结束之前进行匹配。%d*
将匹配0个或更多的数值并存储结果(如果找到,否则为nil)t变量int
%。?
匹配文本
字符。?
表示
可能存在也可能不存在。*
匹配所有内容并将其存储到dec
变量中
同样,对于第二个代码段,请浏览参考。您的文件中有以下文本:
entry {name = "John", age = 20, sex = "Male")
这相当于执行名为entry
的函数,其中参数(注意,我使用的是参数而不是参数)是一个表,如下所示:
entry( {name = "John", age = 20, sex = "Male") )
load
的最后一个参数定义了加载字符串的环境。通过传递{entry=entry}
,您定义了一个环境,其中有一个名为entry
的函数。要更好地理解它,请查看以下部分中的更改:
function myOwnFunctionName(entrydata)
table.insert(data, entrydata)
end
thunk = load(text_from_file, nil, nil, {entry = myOwnFunctionName})
现在,传递给load
的自定义环境将有一个名为entry
的变量,该变量实际上是函数myownformationname