Luau가 작업에서 값이나 변수 (예: 산술 또는 연결 또는 할당)을 사용하려고 하지만 작업에서 기대하는 입력아닌 경우 Luau는 값을 ( 강제로 ) 변경하도록 변환합니다.코셉션은 해당 작업에 대한 런타임에 발생하며 변수의 값을 변경하지 않습니다.
산술
Luau는 산술 연산에서 문자열을 숫자로 강제합니다.이 동작은 Luau에 기본 제공됩니다.형식이 산술에 호환되지 않으면 Luau가 오류를 발생시키고 나머지 스크립트를 실행하지 않습니다.예를 들어, 문자열이 숫자를 나타내지 않으면 숫자에 문자열을 추가할 수 없습니다.
print(100 + "7") -- 107print(100 - "7") -- 93print("1000" + 234) -- 1234print("1000" - 234) -- 766print("hello" + 234) -- error: attempt to perform arithmetic (add) string and number
연결 및 결합
연결에서 Luau는 숫자를 문자열로 강제합니다. 강제를 사용하지 않고 숫자를 문자열로 변환하려면 string.format() 함수를 사용하십시오.
print("Pi is " .. math.pi) --> Pi는 3.1415926535898print("Pi is " .. 3.1415927) --> Pi는 3.1415927-- 세 자리 소수 자릿수로 반올림print("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142
할당
일부 속성은 Enum 또는 문자열과 같은 특정 데이터 유형을 기대하지만, 다른 유형의 값을 할당하고 Luau가 해당 값을 속성이 기대하는 유형으로 변환할 수 있습니다.
열거형
Luau는 열거형 값의 숫자와 문자열을 전체 열거형 이름으로 강제합니다.예를 들어, 숫자나 문자열이나 전체 열거형 이름을 사용하여 Part.Material 속성의 값을 지정할 수 있으며, print() 함수는 항상 전체 열거형 이름을 인쇄합니다.명시적이고 전체 열거형 이름을 사용하는 것이 가장 좋습니다.Enums에 대한 자세한 정보는 Enums를 참조하십시오.
local Workspace = game:GetService("Workspace")local part1 = Instance.new("Part")part1.Material = 816part1.Parent = Workspaceprint(part1.Material) -- Enum.Material.Concretelocal part2 = Instance.new("Part")part2.Material = "Concrete"part2.Parent = Workspaceprint(part2.Material) -- Enum.Material.Concrete-- 이것은 가장 명시적이기 때문에 최선의 방법입니다local part3 = Instance.new("Part")part3.Material = Enum.Material.Concretepart3.Parent = Workspaceprint(part3.Material) -- Enum.Material.Concrete
시간 오브 데이
밤, 일 또는 기타 시간인지 여부를 정의하는 Lighting.TimeOfDay 속성은 DateTime 데이터 입력문자열 표현입니다.Lighting.TimeOfDay 에 숫자를 할당하면 Luau가 DateTime 의 문자열 표현으로 변환합니다.
local Lighting = game:GetService("Lighting")Lighting.TimeOfDay = "05:00:00"print(Lighting.TimeOfDay) -- 05:00:00Lighting.TimeOfDay = 5print(Lighting.TimeOfDay) -- 05:00:00