Conversão de Tipo

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Se Luau tentar usar um valor ou variável em uma operação, como aritmética, concatenação ou atribuição, mas o valor não for do tipo que a operação espera, então Luau converte (coerce) o valor para alterar seu tipo de dado. A coerção ocorre em tempo de execução para essa operação e não altera o valor de uma variável.

Aritmética

Luau coerçe strings para números em operações aritméticas. Esse comportamento está embutido no Luau. Se os tipos forem incompatíveis para aritmética, Luau lança um erro e não executa o restante do script. Por exemplo, você não pode adicionar uma string a um número se a string não representa um número.


print(100 + "7") -- 107
print(100 - "7") -- 93
print("1000" + 234) -- 1234
print("1000" - 234) -- 766
print("hello" + 234) -- erro: tentativa de realizar aritmética (adição) entre string e número

Concatenação

Na concatenação, Luau coerçe números para strings. Para converter um número em uma string sem usar coerção, use a função string.format().


print("Pi é " .. math.pi) --> Pi é 3.1415926535898
print("Pi é " .. 3.1415927) --> Pi é 3.1415927
-- Arredonda para três casas decimais
print("Pi é " .. string.format("%.3f", 3.1415927)) -- Pi é 3.142

Atribuição

Algumas propriedades esperam certos tipos de dados, como um Enum ou string, mas você pode atribuir um valor de um tipo diferente a ela e Luau converte o valor para o tipo que a propriedade espera.

Enums

Luau coerçe números e strings de valores enum em seu nome de enum completo. Por exemplo, você pode nomear o valor da propriedade Part.Material usando um número, string ou nome de enum completo, e a função print() sempre imprime o nome de enum completo. É uma boa prática ser explícito e usar o nome de enum completo. Para mais informações sobre Enums, veja 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
-- Essa é a melhor prática porque é a mais explícita
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(part3.Material) -- Enum.Material.Concrete

Hora do dia

A propriedade Lighting.TimeOfDay, que define se é noite, dia ou qualquer outro horário, é uma representação string do tipo de dado DateTime. Se você atribuir um número a Lighting.TimeOfDay, Luau o converte para a representação string 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 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.