Eine generische for Schleife:
ruft für jeden Durchgang die <function> auf, bis diese nichts mehr zurückgibt.
Man kann sich also einen eigenen Iterator definieren, indem man diese Function zurückgibt.
Hier ein kleines Beispiel:
Code:
for x in <function> do --code end
Man kann sich also einen eigenen Iterator definieren, indem man diese Function zurückgibt.
Hier ein kleines Beispiel:
Code:
function range(i1, i2, increment) local from = i2 and i1 or 1 local to = i2 and i2 or i1 local increment = increment or 1 local i = from - increment return function() i = i + increment if i < to then return i end end end for i in range(10, 20) do print(i) end
Code:
> dofile("test.lua")
10
11
12
13
14
15
16
17
18
19