Variables

Las variables contienen valores que pueden cambiar durante la ejecución de la extensión. Debido a la tipificación dinámica, cualquier variable puede contener valores de cualquier tipo. No hay declaraciones de tipo para las variables. En su lugar, el tipo de una variable se determina en tiempo de ejecución. De hecho, el tipo de valor de una variable puede cambiar durante la ejecución, aunque esta no es una práctica recomendada. Una variable inicialmente tiene el valor nil.

Los nombres de variables son identificadores, al igual que las cadenas de letras, dígitos y guiones bajos que no comienzan en un dígito. Ejemplos: Encabezados, combined_headers.

Variables globales

En Lua, las variables que no se declaran de otro modo son globales dentro del programa. Sin embargo, las variables globales no están permitidas en las funciones de extensión de directivas, porque hay varios motores de paquetes en los que se puede ejecutar una función, y cada motor de paquetes tiene su propia memoria.

Si usa una variable global en su extensión, obtendrá un error de tiempo de ejecución: Intente actualizar o crear un global reportado en /var/log/ns.log.

Los errores tipográficos en nombres de variables son un problema potencial, porque la variable con el error tipográfico se interpretará como otra variable global, y no causará un error de sintaxis como en lenguaje como C o Java. Como se señaló anteriormente, obtendrá un error de tiempo de ejecución en su lugar.

Variables locales

Una variable puede declararse como local a un bloque de sentencias, como una función. Esto se hace por nombre variable local. La variable se aplicará al bloque, es decir, solo existirá dentro del bloque. La declaración local puede asignar opcionalmente un valor a la variable.

Ejemplos:

local headers = {} local combined_headers = {}