【问题标题】:Do Lua variables lose their value between script calls?Lua 变量在脚本调用之间会失去其价值吗?
【发布时间】:2011-03-14 22:23:26
【问题描述】:

在 C 应用中调用 Lua 脚本时,当我稍后再次调用该脚本时,代码中的变量是否保持相同的值?

【问题讨论】:

  • 有点相关,但你是在第一次使用时初始化这些变量吗?

标签: scripting variables lua


【解决方案1】:

在您关闭该状态之前,它们仍将存在于您创建的 lua 状态中。变量与状态相关,而不是脚本文件。

编辑

如 cmets 中所述,当局部变量超出范围时将被垃圾回收。进一步的警告是 Lua 支持closures and upvalues,因此范围可能并不总是完全明显。

【讨论】:

  • 我会通过声明 global 变量保持 Lua 状态来警告这一点。 Lua 脚本中的局部变量将被垃圾回收。
  • 当然还有 upvalues(外部局部变量)与它们所属的 lua 状态的函数保持一致,直到函数可以被垃圾回收。
猜你喜欢
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2012-08-17
  • 2021-09-20
  • 2023-01-17
  • 2011-11-05
  • 2013-07-30
  • 1970-01-01
相关资源
最近更新 更多