我如何编写一个函数来迭代一个“页面”值的数据?示例代码将是理想的...
所以说我们图像的页面大小是5项。如果我们有一个包含18个项目的lua表,则需要打印出来:
因此假设数据类似于:
local data = {}
data["dog"] = {1,2,3}
data["cat"] = {1,2,3}
data["mouse"] = {1,2,3}
data["pig"] = {1,2,3}
.
.
.
如何编写与此相同的函数:
function printPage (myTable, pageSize, pageNum)
-- find items in "myTable"
end
所以实际上我甚至不确定用作字典的Lua表是否可以做到这一点?这样的表中没有特定的排序,所以当你回到打印第2页时,你如何确定订单是否相同?
答案 0 :(得分:2)
next
功能允许您按顺序浏览表(尽管是不可预测的表)。例如:
data = { dog = "Ralf", cat = "Tiddles", fish = "Joey", tortoise = "Fred" }
function printPage(t, size, start)
local i = 0
local nextKey, nextVal = start
while i < size and nextKey ~= nil do
nextKey, nextVal = next(t, nextKey)
print(nextKey .. " = " .. nextVal)
i = i + 1
end
return nextKey
end
local nextPage = printPage(data, 2) -- Print the first page
printPage(data, 2, nextPage) -- Print the second page
我知道这不是你所追求的形式,但我确信它可以很容易地适应。
next
函数返回表中提供的密钥及其值。到达表的末尾时,它返回nil
。如果您提供nil
作为第二个参数,它将返回表中的第一个键和值。它也记录在in Corona,虽然看起来是相同的。