我正在尝试创建一个包含本地函数的函数。主函数将接收来自外部源的输出,并且其中的函数需要转换该输入并返回结果以供以后使用。我的问题是我目前尝试这样做的方式,当我尝试将我的第一个本地函数放入主函数中时,我继续得到nil
. 这是一个例子:
function stats(input)
height, weight, name, age, gender, relate = string.match(input, "(%d*)ft,(%d*)lbs,(%w*),(%d*),(%u*),(%u)")
if name then
function nameInit(relate)
relateTable = {["F"] = "Friend", ["R"] = "Relative"}
for k,v in pairs (relateTable) do
if relate == k then
relship = v
return relship
end
end
end
end
person = name.." is "..age.." years old, weighs "..weight.." and blah blah blah....
return person
end
print (stats("5.8ft, 160lbs, Mike Scott, 19, M, F"))
显然,这个主题是不切实际的,但我正在尝试做的是在最终响应方面沿着相同的路线。我目前得到lua: filename: attempt to concatenate global 'relship' (a nil value)
? 我可以在没有嵌套函数的情况下得到我想要的响应。但是当我尝试详细说明我想收到的响应并将该函数放在全局函数中时,我开始得到这些响应。每当我尝试在其他函数中使用函数时,这似乎都是我的问题。我可以创建两个单独的全局函数并打印其中一个函数的结果。但是当我尝试在另一个中使用一个的那一刻,我把自己搞砸了。任何可以花一些时间帮助初学者更好地理解他做错了什么的人都会很棒!谢谢大家。