幫助文檔中介紹的和查資料里的都是for i, v in ipairs(talbe) do....end或者pairs()等其他迭代函數,這里直接使用table是怎么回事?干脆這樣問好了:table = {123,456,789}for _,v in table doprint(v)end請告訴我,這里的V每次循環是多少?我是直接用的table,不是套用迭代函數。而我所看見的代碼也就是這樣用的,也別說這是語法錯誤,人家程序都跑的好好的。注:不用再解釋用ipairs(table)或者pairs(table)或者其他一些迭代函數,in后面需要返回一個迭代函數,這些資料上說明了的我能懂
2 回答

手掌心
TA貢獻1942條經驗 獲得超3個贊
for i,v in pairs(t) do ... end
這其實只是泛型for的普通用法
for有2種用法
第一種是 for i = 1,10,1 do print(i) end 這種 當計數器用的
第二種是泛型for,for a,b,c,d,e in fun1(para) do ... end
等價于
local fun2 = fun1(para)
while true do
a,b,c,d,e = fun2()
if a then
break
else
......(這里就是上面寫在do里面的內容)
end
end
這里要求的就是fun1的返回值必須是一個迭代函數 不然就計算不完了

幕布斯7119047
TA貢獻1794條經驗 獲得超8個贊
table是lua里的數據類型,比如 t = {"a","b","c"},t就是個table,
用 for i,v in ipairs(t) do print(i,v) end
執行就打?。?br/>1 a
2 b
3 c
添加回答
舉報
0/150
提交
取消