2017-11-30 4 views
0

インデックスとx値を取得したいと思います。 gmatch関数から、私はこのコードに失敗したので、私は文字です。私は値とインデックスを取得したい。そこから何か解決策はありますか?ルアでインデックスと値を取得

val[1] = 24 
fx = {} 

for i, x in response_body[1]:gmatch([["(%w+)lId"%s*:%s*(%d+)]]) do 
fc[i] = x 
print(x) 
end 
/* x prints 14 
      18 
      23 */ 

if (val[1] ~= fc[1] and val[1] ~= fc[2] and val[1] ~= fc[3]) then 
val[1] = fc[1] 

else 
val[1] = val[1] 
end 
+1

'fc [i] = tonumber(x)' –

答えて

0

string.gmatchは文字列を返します。だからixは、あなたのコードでは文字列であり、あなたはもちろん一致しているとします。

f[1]は、と同じではありません。だから、

あなたのコードfc[1]でというようにあなたがnumber値にstringを変換するtonumberを使用することができますnil値であり、したがってできません等しい24

。しかし、英数字を%wに一致するように変換することは、必ずしも数字に変換できるとは限りません。あなたはテーブルインデックスとしてnilを使わないでください。そうしなければエラーになります。

関連する問題