Hey, I know this may sound dumb, but I’m trying to make a script and I need to do “for x, y in z do” but I can’t figure out how. I am trying to make a mandelbrot fractal.
for x, y in z do
doStuff()
end
Hey, I know this may sound dumb, but I’m trying to make a script and I need to do “for x, y in z do” but I can’t figure out how. I am trying to make a mandelbrot fractal.
for x, y in z do
doStuff()
end
This is vague. Are you wanting to mimic the functionality of for x, y in z:
from Python? If so, just store every tuple pair in a table {{x, y}, ...}
like you would in Python [(x, y), ...]
and use pairs
(or ipairs
) to iterate through it.
vars = {{1, 2}, {3, 4}, {5, 6}}
for _, var in pairs(vars) do
x, y = table.unpack(var)
print(x, y)
end
>> 1 2
>> 3 4
>> 5 6
You can make your own iterator.
--!strict
local function setIter<T>(t: {{T}}): () -> ...T
return coroutine.wrap(function(): ()
for _: number, set: {T} in t do
coroutine.yield(table.unpack(set))
end
end)
end
for n1: number, n2: number in setIter({{1, 2}, {3, 4}, {5, 6}}) do
print(n1, n2)
end
Not sure what the format of your z
table is, but if you’d simply like to snag every 2 elements of an array table z
then you could just use the 3rd argument of a for loop:
for i = 1, #z - 1, 2 do
local x = z[i]
local y = z[i + 1]
dostuff(x, y)
end