Quand vous commencez à travailler avec Lua, l'une des premières questions est de savoir comment les variables et les types sont organisés ici ? Surtout si vous avez déjà écrit en Python ou JavaScript, où tout semble également « dynamique », mais il y a des nuances. Voyons cela.
Variables par défaut dans Lua mondiaux. Cela distingue fortement le langage de Python et JavaScript, où tout ce que vous créez à l'intérieur d'une fonction est local.
x = 10 -- глобальная переменная
local y = 5 -- локальная переменная
👉 Une bonne pratique consiste à toujours utiliser local pour ne pas encombrer l'espace de noms global et ne pas attraper de bogues inattendus.

Types en Lua : 8 de base
nil
boolean
number
string
function
userdata
thread
table
local a = 42 -- number
local b = "hello" -- string
local c = true -- boolean
local d = nil -- nil
📌 Contrairement à Python, où les nombres sont divisés par int, float, complex, dans Lua, tout cela est simplement number. Cela simplifie la vie, mais réduit parfois le contrôle.
Typage dynamique : comment en JS et Python ?
Oui, Lua, comme Python/JavaScript, est un langage avec typage dynamique. La variable peut changer de type à la volée :
local v = 10
print(type(v)) -- number
v = "line"
print(type(v)) -- string
# Python
x = 10
x = "line"
// JavaScript
let x = 10
x = "line"
Mais il y a un point délicat : Lua n'a pas de mécanismes intégrés pour limiter le type (contrairement à TypeScript, mypy, etc.). Tout dépend de la discipline du programmeur.

Tableaux : le type universel principal
Si Python a listes, dictionnaires, ensembles, et en JS — objets et matrices, alors dans Lua, tout cela est combiné en un seul type - table.
local arr = {1, 2, 3} -- как массив
local dict = {x=10, y=20} -- как словарь
👉 C'est là que réside la puissance de Lua : moins de types, plus de flexibilité. Mais aussi plus de responsabilité 😅.
En quoi Lua est-il différent de Python et de JS ?
Caractéristiques | Lua | Python | JavaScript |
|---|---|---|---|
Variables par défaut | Mondiaux | Locaux dans la fonction | Variables locales dans les fonctions (let/const) |
Nombre de types intégrés | 8 | 14+ | 7+ |
Type de nombres | Un (nombre) | int, float, complex | number, bigint |
Structure principale des données | table | list, dict, set, tuple | object, array |
Système de types | Dynamique, sans limites | Dynamique, mais stricte | Dynamique, avec de la « magie » (NaN, etc.) |
Lua est un langage avec un modèle de données simple et flexible. Il n'est pas surchargé de types comme Python, et n'est pas aussi « bizarre » avec les nombres que JavaScript. Mais en raison des variables globales et de l'absence de typage strict, il faut être particulièrement prudent.
📌 Par conséquent, si vous voulez écrire en Lua sans douleur, toujours mettre local et surveillez clairement ce qui est stocké dans les variables.
Dans Codique nous rendons l'apprentissage de la programmation passionnant et compréhensible : nous avons des cours intéressants avec des tâches qui aident à améliorer les compétences étape par étape.
Et nous avons aussi un chaîne de télégram, où nous discutons d'idées intéressantes, partageons nos expériences et analysons ensemble les tâches, apprendre devient non seulement utile, mais aussi amusant.
