Как переписать скомпилированный (?) Скрипт? - PullRequest
0 голосов
/ 05 сентября 2011

Если я создаю простой файл сценария lua:
test.lua

#!/usr/bin/env lua

local var = math.random(100)
print(var)

Он всегда будет печатать одно и то же значение при вызове, даже если это действительно должно быть новое случайное значение при каждом вызове.
Я предполагаю, что скрипт будет скомпилирован (?), Например:

#!/usr/bin/env lua

local var = 82
print(var)

(если 82 было случайным значением при первом вызове)

Что я могу сделать, чтобы новый (?) Байт-код компилировался (?) Каждый раз, когда я вызываю скрипт, чтобы я мог получать новое случайное значение при каждом выполнении скрипта?

Причина, по которой я добавил (?), Заключается в том, что я даже не знаю, скомпилированы ли скрипты вообще или что с ними происходит при их вызове, но что-то подобное происходит явно, так как я получаю одно и то же значение все время.

1 Ответ

6 голосов
/ 05 сентября 2011

Ваш скрипт не хранится в виде байт-кода, просто одно и то же случайное начальное число по умолчанию используется при каждом запуске. Это имеет эффект, который вы видите: вы получаете одну и ту же «случайную» последовательность при каждом запуске скрипта.

Вы должны инициализировать его, выполнив, например,

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