变量

变量保存的值可能在扩展执行期间更改。由于动态类型,任何变量都可以保存任何类型的值。变量没有类型声明。相反,变量的类型在运行时确定。事实上,变量值的类型在执行过程中可能会改变,尽管这不建议这样做。变量的初始值为nil。

变量名是标识符,字母、数字和不以数字开头的下划线组成的字符串也是标识符。例如:headers, combined_headers。

全局变量

在Lua中,没有声明的变量在程序中是全局变量。但是,策略扩展函数中不允许使用全局变量,因为可以在多个包引擎中执行一个函数,并且每个包引擎都有自己的内存。

如果你在扩展中使用全局变量,你会得到一个运行时错误:尝试更新或创建一个全局报告/var/log/ns.log

变量名中的错别字是一个潜在的问题,因为有错别字的变量将被解释为另一个全局变量,而不会像在C或Java等语言中那样导致语法错误。如上所述,您将得到一个运行时错误。

局部变量

变量可以声明为语句块的局部变量,例如函数。这是由局部变量-name完成的。变量将被限定在块内,也就是说,它只存在于块内。局部声明可以选择性地为变量赋值。

例子:

本地headers ={}本地combined_headers = {}

变量