Jeśli Luau próbuje użyć wartości lub zmiennej w operacji, takiej jak arytmetyka , konkatenacja lub 2> przypisanie2>, ale wartość nie jest wpisywać, którego oczekuje operacja, to Luau konwertuje ( 5> siły napędowe 5> ) wartość, aby
Arytmetyka
Luau wymusza ciągi do liczb w operacjach arytmetycznych . Ten zachowanie jest zbudowany w Luau. Jeśli rodzaje są niezgodne dla arytmetyki, Luau wyrzuca błąd i nie uruchamia reszty skryptu. Na przykład, nie możesz dodać ciągu do liczby, jeśli ciąg nie reprezentuje liczby.
print(100 + "7") -- 107print(100 - "7") -- 93print("1000" + 234) -- 1234print("1000" - 234) -- 766print("hello" + 234) -- error: attempt to perform arithmetic (add) string and number
Połączenie
W kumulacji Luau wymusza liczby na struny. Aby przekonać liczbę na strunę bez użycia kumulacji, użyj funkcji string.format().
print("Pi is " .. math.pi) --> Pi to 3.1415926535898print("Pi is " .. 3.1415927) --> Pi to 3.1415927-- Roundy do trzech miejsc dziesięciu dziesięciu dziesięciuprint("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142
Zakres
Niektóre właściwości oczekują pewnych typów danych, takich jak enum lub ciąg, ale możesz przypisać wartość innego typu do niej i Luau konwertuje wartość na typ oczekiwany przez właściwość.
Enumy
Luau wymusza numery i wartości zmiennej Part.Material w pełnym imieniu zmiennej. Na przykład możesz nazwać wartość print() własności używając liczby, ciąglub pełnego imienia zmiennej, a funkcja print() zawsze drukuje pełne imię zmienne. To dobre praktyki używania
local part1 = Instance.new("Part")part1.Parent = workspacepart1.Material = 816print(part1.Material) -- enum.Material.Concretelocal part2 = Instance.new("Part")part2.Parent = workspacepart2.Material = "Concrete"print(part2.Material) -- enum.Material.Concrete-- To najlepsze praktyki, ponieważ jest najbardziej jasnylocal part3 = Instance.new("Part")part3.Parent = workspacepart3.Material = Enum.Material.Concreteprint(part3.Material) -- Enum.Material.Concrete
CzasDnia
Właściwość Lighting.TimeOfDay, która określa, czy jest to noc, dzień lub inny czas, jest reprezentacją w formie strunowej wpisywaćdanych DateTime. Jeśli przypiszesz numerowi Lighting.TimeOfDay, Luau przelicza go na reprezentację w formie strunowej 1>Datatype.DateTime1>.
local Lighting = game:GetService("Lighting")Lighting.TimeOfDay = "05:00:00"print(Lighting.TimeOfDay) -- 05:00:00Lighting.TimeOfDay = 5print(Lighting.TimeOfDay) -- 05:00:00