當lua調用for循環中的ipairs(a)時,它會獲得三個值:迭代器函數iter、恒定狀態a和控制變量的處置0。然后lua調用iter(a,0),得到1,a[1]。在第二次迭代中,繼續調用iter(a,1),得到2,a[2],依次類推,直到得到的第一個nil元素為止。pairs與ipairs類似,也是用于遍歷一個table中的所有元素。不同的是,它的迭代器函數是lua中的一個基本函數next。
local function iter(a,i) i=i+1 local v=a[i] if v then return i,v endendlocal function ipairsss(a) return iter,a,0endlocal function pairsss(a) return next,a,nilendlocal b={1,2,3,4,5,6,7}for i,v in pairsss(b) do PRint(i,v)end
新聞熱點
疑難解答