{}const=>[]async()letfn</>var
DéveloppementLua

Variables et types en Lua : en quoi diffèrent-ils de Python et de JS

Nous analysons comment les variables et les types sont organisés dans Lua, et en quoi ils diffèrent des Python et JavaScript habituels.

К

Kodik

Auteur

3 min de lecture

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.

🔥 100 000+ étudiants déjà avec nous

Marre de lire la théorie ?
Il est temps de coder !

Kodik — une appli où tu apprends à coder par la pratique. Mentor IA, leçons interactives, projets réels.

🤖 IA 24/7
🎓 Certificats
💰 Gratuit
🚀 Commencer
Ont rejoint aujourd'hui

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.

🎯Arrête de reporter

Tu as aimé l'article ?
Place à la pratique !

Avec Kodik, tu ne lis pas seulement — tu codes immédiatement. Théorie + pratique = vraies compétences.

Pratique instantanée
🧠L'IA explique le code
🏆Certificat

Sans inscription • Sans carte