2010-12-12 61 views
2

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

例如,假设您的API有一个名为GetFoo(x,y)的函数,它在坐标(x,y)处返回一个Foo。假设在系统本身(例如用C或C++编写的基于0的编程语言)中,这些事情是从(0,0)开始的,你会在(0,0)还是(1,1) (所以如果你使用Lua约定,当从lua栈中检索这些类型的操作时,你总是必须减1)。

回答

5

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

对于一切,只要你在文件中明确规定了,通过各种手段开始在指数1

+1

我同意,对于坐标系的特殊情况,在(1,1)处开始坐标是没有意义的。特别是如果你打算最终将你的系统扩展到浮点和/或负坐标。 – Zecc 2010-12-12 14:20:07

0

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

+0

和'#array'太:-( – u0b34a0f6ae 2010-12-12 18:43:40