感谢您提供反馈

这篇文章已经过机器翻译.放弃

变体

变量保存在扩展执行期间可能会更改的值。由于动态类型,任何变量都可能包含任何类型的值。变量没有类型声明。相反,变量的类型是在运行时确定的。事实上,变量值的类型可能会在执行过程中发生变化,尽管这不是推荐的做法。一个变量最初的值为零。

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

全局变量

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

如果您在扩展中使用全局变量,则会出现运行时错误:尝试更新或创建在 /var/log/ns.log中报告的全局变量。

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

局部变量

变量可以声明为语句块的本地变量,例如函数。这是由本地变量名称完成的。变量将作用域为块,也就是说,它只存在于块中。本地声明可以选择为变量分配一个值。

示例:

local headers = {} local combined_headers = {}

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
变体