如果你要编写一个从 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)。
如果你要编写一个从 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)。