Написание API вызывается из Lua - 0 или 1 на основе? - PullRequest
2 голосов
/ 12 декабря 2010

Если бы вы написали API, который вызывается из Lua (который основан на 1, например, индексы таблиц начинаются с 1), примените ли вы то же правило к своему API?

Например, скажем, в вашем API была функция GetFoo (x, y), которая возвращала Foo по координате (x, y). Вы бы начали свои оси координат с (0,0) или (1,1) для API, предполагая, что в самой системе (скажем, написанной на C или C ++, основанной на 0) эти вещи начинаются с (0,0) (поэтому, если вы использовали соглашение Lua, вам всегда нужно будет вычитать 1 при получении чисел для операций такого типа из стека lua).

Ответы [ 2 ]

5 голосов
/ 12 декабря 2010

Я не использовал Lua, но я бы сказал, что для системы координат конкретно (0,0) предпочтительнее.

Для всего остального, если вы четко указали это в документации, обязательно начните индексы с 1.

0 голосов
/ 12 декабря 2010

Вы также можете просто использовать индекс 0 в вашей таблице / массивах. Единственное неудобство - стандартные библиотеки используют соглашение на основе 1. Таким образом, такие как table.sort, строковые операции и т. Д. Будут игнорировать элемент table [0].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...