У меня проблема с Lua. Используется индексация по одному. В языке есть функция для установки значения в индекс 0, но значение выиграло не может считаться частью длины таблицы, а манипуляции со строками все еще основаны на одном. Поэтому я думаю, что эта функция является чем-то особенным, а не индексацией.
Я не хочу, чтобы пламя касалось единицы или нуля. Я просто спрашиваю, есть ли возможность принудительной индексации с нуля.
Я думаю, что в этом Lua уже есть функция, которая вам нужна, чтобы сделать его основанным на 0. К сожалению, я имею в виду лицензию Lua с открытым исходным кодом.
Мне не удалось найти патч или форк Lua, который изменил бы основанную на единице природу языка.
К сожалению, форк Lua для изменения его на 0-основанный также нарушит обратную совместимость. Потеря всех текущих дополнительных модулей может оказаться слишком большой платой за простоту использования.
Даже если бы в исходниках Lua был #define TABLE_START_INDEX 1
(который, я не думаю, есть), вы бы в значительной степени прострелили себе ногу, изменив это. Это связано с тем, что большинство библиотек используют индексирование на основе 1. Таким образом, любой код, выполняющий что-то вроде следующего, сломается.
для i = 1, #t do ... end
Вы, конечно, можете использовать итераторы или даже создавать вспомогательные функции, чтобы этого избежать.
function get_first (t) return t [1] end
Вероятно, хотя реальная проблема, которую вы пытаетесь решить, сложнее, чем изменение индексации с 0 на 1.