Conversion de type

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Si Luau tente d'utiliser une valeur ou une variable dans une opération, telle que l'arithmétique, la concaténation ou l'assignation, mais que la valeur n'est pas du type attendu par l'opération, alors Luau convertit (force) la valeur pour changer son type de données. La coercition se produit à l'exécution pour cette opération et ne change pas la valeur d'une variable.

Arithmétique

Luau convertit les chaînes de caractères en nombres dans les opérations arithmétiques. Ce comportement est intégré à Luau. Si les types sont incompatibles pour l'arithmétique, Luau génère une erreur et n'exécute pas le reste du script. Par exemple, vous ne pouvez pas ajouter une chaîne à un nombre si la chaîne ne représente pas un nombre.


print(100 + "7") -- 107
print(100 - "7") -- 93
print("1000" + 234) -- 1234
print("1000" - 234) -- 766
print("hello" + 234) -- erreur : tentative d'effectuer une opération arithmétique (ajout) de chaîne et de nombre

Concaténation

Dans la concaténation, Luau convertit les nombres en chaînes. Pour convertir un nombre en chaîne sans utiliser la coercition, utilisez la fonction string.format().


print("Pi est " .. math.pi) --> Pi est 3.1415926535898
print("Pi est " .. 3.1415927) --> Pi est 3.1415927
-- Arrondit à trois décimales
print("Pi est " .. string.format("%.3f", 3.1415927)) -- Pi est 3.142

Assignation

Certaines propriétés attendent certains types de données, comme un Enum ou une chaîne, mais vous pouvez assigner une valeur d'un type différent et Luau convertit la valeur au type attendu par la propriété.

Enums

Luau convertit les nombres et les chaînes de valeurs d'enum en le nom complet de l'enum. Par exemple, vous pouvez nommer la valeur de la propriété Part.Material en utilisant un nombre, une chaîne ou le nom complet de l'enum, et la fonction print() imprime toujours le nom complet de l'enum. Il est préférable d'être explicite et d'utiliser le nom complet de l'enum. Pour plus d'informations sur les Enums, voir Enums.


local Workspace = game:GetService("Workspace")
local part1 = Instance.new("Part")
part1.Material = 816
part1.Parent = Workspace
print(part1.Material) -- Enum.Material.Concrete
local part2 = Instance.new("Part")
part2.Material = "Concrete"
part2.Parent = Workspace
print(part2.Material) -- Enum.Material.Concrete
-- C'est la meilleure pratique car c'est le plus explicite
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(part3.Material) -- Enum.Material.Concrete

Heure du jour

La propriété Lighting.TimeOfDay, qui définit s'il fait nuit, jour ou tout autre moment, est une représentation sous forme de chaîne du type de données DateTime. Si vous assignez un nombre à Lighting.TimeOfDay, Luau le convertit en la représentation sous forme de chaîne de DateTime.


local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "05:00:00"
print(Lighting.TimeOfDay) -- 05:00:00
Lighting.TimeOfDay = 5
print(Lighting.TimeOfDay) -- 05:00:00
©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.