[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: array index and modulo
- From: "Wesley Smith" <wesley.hoke@...>
- Date: Thu, 29 Mar 2007 00:07:44 -0700
This is a very simple problem, but I'm failing to find an elegant
solution. I have an array of data that I'm treating as a circular
buffer. Typically I use modulo to wrap the index to the range of the
buffer, but since Lua arrays start from 1 (and I want to follow this
convention), the modulo operator is not really useful.
for example.
given
local numData = 10
data = {}
for i=1, numData do
data[i] = newData()
end
currentData = 0
what is a good solution for this function:
function nextData()
currentData = (currentData+1) % (#data) --gives [0, #data-1]
return data[currentData]
end
--I could do this, but is there a better solution?
function nextData()
currentData = currentData+1
if(currentData > #data) currentData = 1 end
return data[currentData]
end
thanks,
wes