Не может изменить значение "глобальной" таблицы lua - PullRequest
0 голосов
/ 05 июля 2011

У меня есть файл сценария .lua, и у меня возникла проблема с чем-то вроде этого:

myTable = {}

function changeMyTable(index,value){
    myTable[index] = value
    --When I output the size of #myTable now I receive 1 as result...
}

function checkMyTableSize(){
    --when i output #myTable here. I receive 0 as result
}

Кто-нибудь знает, как создать индекс для глобальной таблицы «myTable»?

Я тоже пытался использовать table.insert (myTable, index, value).

1 Ответ

1 голос
/ 05 июля 2011

- Теперь, когда я вывожу размер #myTable, я получаю 1 как результат ...

Это должно произойти только , если значение indexбыло ровно 1. В противном случае это не так.Оператор # подсчитывает только количество значений в таблице, которые являются значениями массива, и считается до первого значения NIL.Таким образом, он проверяет таблицу [1], затем таблицу [2], затем ... пока не достигнет NIL.И это возвращает это.

Обратите внимание, что это объяснение концепции, стоящей за ним.Реализация, вероятно, не зацикливается на этом.

В любом случае ваша несогласованность может быть связана с многократным выполнением сценария, а не с многократным вызовом глобальных функций.

...