Variables

Les variables contiennent des valeurs qui peuvent changer lors de l’exécution de l’extension. En raison du typage dynamique, n’importe quelle variable peut contenir des valeurs de n’importe quel type. Il n’existe aucune déclaration de type pour les variables. Au lieu de cela, le type d’une variable est déterminé au moment de l’exécution. En fait, le type de valeur d’une variable peut changer au cours de l’exécution, bien que cette pratique ne soit pas recommandée. La valeur initiale d’une variable est nulle.

Les noms de variables sont des identificateurs, de même que les chaînes de lettres, de chiffres et de traits de soulignement ne commençant pas par un chiffre. Exemples : en-têtes, en-têtes combined_headers.

Variables globales

Dans Lua, les variables qui ne sont pas déclarées autrement sont globales au sein du programme. Cependant, les variables globales ne sont pas autorisées dans les fonctions d’extension de stratégie, car il existe plusieurs moteurs de paquets dans lesquels une fonction peut être exécutée, et chaque moteur de paquets a sa propre mémoire.

Si vous utilisez une variable globale dans votre extension, vous obtiendrez une erreur d’exécution : essayez de mettre à jour ou de créer un global signalé dans le fichier /var/log/ns.log.

Les fautes de frappe dans les noms de variables constituent un problème potentiel, car la variable contenant la faute de frappe sera interprétée comme une autre variable globale et ne provoquera pas d’erreur de syntaxe comme dans un langage tel que C ou Java. Comme indiqué ci-dessus, vous obtiendrez à la place une erreur d’exécution.

Variables locales

Une variable peut être déclarée comme étant locale à un bloc d’instructions, tel qu’une fonction. Cela se fait par le nom de la variable locale. La variable sera limitée au bloc, c’est-à-dire qu’elle n’existera que dans le bloc. La déclaration locale peut éventuellement affecter une valeur à la variable.

Exemples :

local headers = {} local combined_headers = {}

Variables