その中にローカル関数を含む関数を作成しようとしています。メイン関数は外部ソースから出力を受け取り、その内部の関数はその入力を変換し、後で使用するために結果を返す必要があります。私の問題は、私が現在これを試みている方法で、メイン関数内に最初のローカル関数を入れようとすると、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)
ますか?ネストされた関数がなくても、必要な応答を得ることができます。しかし、受け取りたい応答について詳しく説明し、その関数をグローバル関数内に配置しようとすると、これらの応答が得られ始めます。これは、他の関数内で関数を使用しようとするたびに問題になるようです。2 つの個別のグローバル関数を作成し、いずれかの結果を出力できます。しかし、私が別のものを使用しようとすると、私は自分自身を台無しにします. 初心者が何を間違っているのかをよりよく理解するのに少し時間をかけることができる人なら誰でも素晴らしいでしょう! 皆さんありがとう。