编写从Lua-0或1调用的API?

时间:2010-12-12 10:23:05

标签: api lua conventions indices

如果您要编写从Lua调用的API(基于1,例如表索引从1开始),您是否会将相同的规则应用于API?

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

2 个答案:

答案 0 :(得分:5)

我没有使用Lua,但我想说一个坐标系特别是(0,0)将是首选。

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

答案 1 :(得分:0)

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