0

我将如何编写一个函数来遍历一个“页面”的数据?示例代码将是理想的...

所以假设我们图像页面的大小是 5 个项目。如果我们有一个包含 18 个项目的 lua 表,它需要打印出来:

  • 第 1 页:1 至 5
  • 第 2 页:6 到 10
  • 第 3 页:11 至 15
  • 第 4 页:16 至 18

所以假设数据是这样的:

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 页时,您如何确定顺序是相同的?

4

1 回答 1

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作为第二个参数,它会返回表中的第一个键和值。它也记录在 Corona 中,尽管它看起来是相同的。

于 2012-05-19T11:49:46.353 回答