如何覆盖编译过的脚本?

如果我创建了一个简单的 Lua 脚本文件:

test.lua

#!/usr/bin/env lua

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

每次调用它时,它都会始终打印出相同的值,即使它应该是每次调用时的新随机值。

我猜想脚本被编译为(?)

#!/usr/bin/env lua

local var = 82
print(var)

(如果 82 是第一次调用时的随机值)

我该怎么做才能确保每次调用脚本时都会编译出新(?)的字节码,以便每次执行脚本时都能获得新的随机值?

我加了(?)的原因是我甚至不知道脚本是否编译或者当它们被调用时会发生什么,但是显然会发生一些事情,因为我总是得到相同的值。

原文链接 https://stackoverflow.com/questions/7308877

点赞
stackoverflow用户513763
stackoverflow用户513763

你的脚本没有被保存为字节码,只是在每次运行时使用了相同的默认随机种子。这就是你看到的效果:每次运行脚本时,你都会得到相同的“随机”序列。

你应该通过执行以下操作来初始化它:

math.randomseed(os.time())
2011-09-05 13:43:24