andrew810810

# ipairs(t) and pairs(t)

reference:

http://www.lua.org/manual/5.3/manual.html

### `ipairs (t)`

Returns three values (an iterator function, the table `t`, and 0) so that the construction

`for i,v in ipairs(t) do body end`

will iterate over the key–value pairs (`1,t[1]`), (`2,t[2]`), ..., up to the first nil value.

### `pairs (t)`

If `t` has a metamethod `__pairs`, calls it with `t` as argument and returns the first three results from the call.

Otherwise, returns three values: the `next` function, the table `t`, and nil, so that the construction

`for k,v in pairs(t) do body end`

will iterate over all key–value pairs of table `t`.

See function `next` for the caveats of modifying the table during its traversal.

## 示例1：

``````local tabFiles = {
[2] = "test2",
[4] = "test3",
[3] = "test1"
}

for k, v in ipairs(tabFiles) do
print(k, v)
end
``````

## 示例2：

``````local tabFiles = {
[2] = "test2",
[4] = "test3",
[3] = "test1"
}

for k, v in pairs(tabFiles) do
print(k, v)
end
``````

``````3	test1
2	test2
4	test3
``````

## 示例3：

``````local tabFiles1 = {
[3] = "test2",
[6] = "test3",
[4] = "test1"
}

for k, v in pairs(tabFiles1) do
print(k, v)
end
``````

``````3	test2
6	test3
4	test1``````

## 示例4：

``````local tabFiles2 = {
[1] = "test2",
[6] = "test3",
[4] = "test1"
}
for k, v in ipairs(tabFiles2) do
print(k, v)
end
``````

``1	test2``

## 示例5：

``````local tabFiles2 = {
[1] = "test2",
[6] = "test3",
[4] = "test1"
}
for k, v in pairs(tabFiles2) do
print(k, v)
end``````

``````1	test2
6	test3
4	test1``````

## 示例6：

``````local tabFiles3 = {
[2] = "test2",
[6] = "test3",
[1] = "test1",
"ok",
}
for k, v in ipairs(tabFiles3) do
print(k, v)
end``````

``````1	ok
2	test2``````

## 示例7：

``````local tabFiles3 = {
[2] = "test2",
[6] = "test3",
[1] = "test1",
"ok",
}
for k, v in pairs(tabFiles3) do
print(k, v)
end``````
``````1	ok
2	test2
6	test3``````

table中定义了key为1的value，以及没有定义key的value，发现对于key为1的value会被没有定义key的value覆盖。

### andrew810810

Lua系列--pairs和ipairs

2018/07/30
0
0
Lua 笔记--迭代器与泛型for

_子墨
2014/12/27
0
0
Lua 语言的陷阱

Lua 语言核心很小，用纯 C 构建，方便嵌入许多系统，而且语法简洁，文档齐备，还有速度更快的 LuaJIT 的解释器。所以决定用这种语言实现 Spp 的算法。 Lua 的标准库很小，JSON, 和 Seriaria...

2015/10/18
138
0
Lua 5.2/5.3 热更新小结

Lua热更新实现 用途 在生产环境上，总有可能出现不可预知的Bug，而通常修改好Bug仅仅又修改几句，停机维护的成本又太高，对于游戏来说，通常每个服就是单独的进程，也做不到像分布式环境下，...

tickbh
2016/04/26
559
3
Lua Starter

2016/07/21
486
0

【转】初次提交项目到github

14分钟前
2
0
Zend Studio使用教程：使用PHPUnit检测代码（五）

14分钟前
2
0

data.result 为联想搜索出来的数组 innerhtml += "<ul style='list-style:none;font-size:13px;margin: 0px;padding: 5px;'>";for (var j = 0; j < data.result.length; j++) { var r......

yan_liu
15分钟前
2
0

Fundebug
15分钟前
1
0

16分钟前
1
0