如果我创建一个简单的lua脚本文件:
test.lua
#!/usr/bin/env lua
local var = math.random(100)
print(var)
Run Code Online (Sandbox Code Playgroud)
它在调用时将始终打印相同的值,即使它在每次调用时确实应该是一个新的随机值.
我的猜测是脚本编译(?)为例如:
#!/usr/bin/env lua
local var = 82
print(var)
Run Code Online (Sandbox Code Playgroud)
(如果82是第一次调用时的随机值)
我可以做什么来确保每次调用脚本时都会编译一个新的(?)字节码(?),这样我就可以在每次执行时得到一个新的随机值剧本?
我添加(?)的原因是我甚至不知道脚本是否完全被编译或者它们被调用时会发生什么,但是这样的事情显然正在发生,因为我总是得到相同的值.
您的脚本不会保留为字节码,只是在每次运行时都使用相同的默认随机种子.这会产生你所看到的效果:每次运行脚本时都会得到相同的"随机"序列.
例如,您应该通过执行来初始化它
math.randomseed(os.time())
Run Code Online (Sandbox Code Playgroud)