2015-02-13 3 views
1

Есть ли способ объявить и зарезервировать место для большого массива без использования table.insert? Нечто подобное в Python:Как объявить массив с элементами X в lua

a = [0]*10000 

или в C:

malloc(10000*sizeof(int)) 
+1

Зачем вам это нужно? Чего вы пытаетесь достичь? – lhf

+0

Вы пытаетесь сопоставить концепции из других сред с Lua, и они не все, что полезно в Lua: «массив», «объявление», «резервное пространство»; Даже «X-элементы» более точны как «пары ключей ключа X». Вопросы Ergo, @ lhf. –

+0

Я думаю, вы ошибаетесь в отношении того, что делает код python. Умножение не оставляет места. Попробуйте '[] == [] * 10000' или' sys.getsizeof ([] * 10000'.) – Akavall

ответ

5

Lua таблицы динамичны: они растут по мере необходимости. Нет необходимости (и никоим образом) объявлять большой массив. Просто создайте его с помощью a={} и заполните его по мере необходимости.

Если необходимо создать большой массив, просто заполнить его с некоторым значением:

a={} 
for i=1,10000 do 
    a[i]=true 
end 

В любом случае, это на самом деле не работа для table.insert.

Смежные вопросы