2

如果你要编写一个从 Lua 调用的 API(它是基于 1 的,例如表索引从 1 开始),你会在你的 API 中应用相同的规则吗?

例如,假设您的 API 有一个名为 GetFoo(x, y) 的函数,它在坐标 (x,y) 处返回一个 Foo。假设在系统本身(比如用基于 0 的 C 或 C++ 编写)这些东西从 (0,0) 开始,您会在 API 的 (0,0) 或 (1,1) 处开始坐标轴吗(因此,如果您使用 Lua 约定,则在从 lua 堆栈中检索此类操作的数字时总是必须减去 1)。

4

2 回答 2

5

我没有使用过 Lua,但我会说对于坐标系,特别是 (0,0) 是首选。

对于其他所有内容,只要您在文档中明确说明,就一定要从 1 开始索引。

于 2010-12-12T10:31:14.003 回答
0

您也可以只使用表/数组中的 0 索引。唯一的不便是标准库使用基于 1 的约定。因此,table.sort、字符串操作等...将忽略 table[0] 元素。

于 2010-12-12T11:33:52.220 回答