Konwersja typów

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Jeśli Luau próbuje użyć wartości lub zmiennej w operacji, takiej jak arytmetyka, konkatenacja lub przypisanie, ale wartość nie jest typu, którego operacja oczekuje, Luau konwertuje (konwertuje) wartość, aby zmienić jej typ danych. Konwersja odbywa się w czasie wykonywania dla tej operacji i nie zmienia wartości zmiennej.

Arytmetyka

Luau konwertuje ciągi znaków (stringi) na liczby w operacjach arytmetycznych. To zachowanie jest wbudowane w Luau. Jeśli typy nie są zgodne z arytmetyką, Luau zgłasza błąd i nie wykonuje reszty skryptu. Na przykład, nie możesz dodać ciągu znaków do liczby, jeśli ten ciąg nie reprezentuje liczby.


print(100 + "7") -- 107
print(100 - "7") -- 93
print("1000" + 234) -- 1234
print("1000" - 234) -- 766
print("hello" + 234) -- błąd: próba wykonania operacji arytmetycznej (dodawanie) między ciągiem a liczbą

Konkatenacja

W konkatenacji, Luau konwertuje liczby na ciągi znaków. Aby przekonwertować liczbę na ciąg znaków bez użycia konwersji, użyj funkcji string.format().


print("Pi to " .. math.pi) --> Pi to 3.1415926535898
print("Pi to " .. 3.1415927) --> Pi to 3.1415927
-- Zaokrągla do trzech miejsc po przecinku
print("Pi to " .. string.format("%.3f", 3.1415927)) -- Pi to 3.142

Przypisanie

Niektóre właściwości oczekują określonych typów danych, takich jak Enum lub ciąg znaków, ale możesz przypisać do nich wartość innego typu, a Luau konwertuje tę wartość na typ, którego oczekuje właściwość.

Enums

Luau konwertuje liczby i ciągi znaków wartości enum na pełną nazwę enum. Na przykład, możesz nazwać wartość właściwości Part.Material używając liczby, ciągu znaków lub pełnej nazwy enum, a funkcja print() zawsze wypisuje pełną nazwę enum. Najlepszą praktyką jest być precyzyjnym i używać pełnej nazwy enum. Aby uzyskać więcej informacji o Enums, zobacz 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
-- To jest najlepsza praktyka, ponieważ jest najbardziej precyzyjne
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(part3.Material) -- Enum.Material.Concrete

Czas dnia

Właściwość Lighting.TimeOfDay, która definiuje, czy jest noc, dzień, czy inny czas, jest reprezentacją ciągu znaków typu DateTime. Jeśli przypiszesz liczbę do Lighting.TimeOfDay, Luau konwertuje ją na reprezentację ciągu znaków 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. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.