연산자

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

An operator is a symbol for performing an operation or conditional evaluation.

논리적

논리 연산자는 주어진 인수의 불린 값에 따라 값을 반환합니다. 인수가 false 또는 nil이 아닐 경우, 연산자는 이를 true로 평가합니다. 다른 많은 언어와 달리, Luau는 0과 빈 문자열을 모두 true로 간주합니다. 다음 표는 논리 연산자가 조건문에서 어떻게 작동하는지를 요약합니다.

연산자설명
and두 조건이 모두 참일 경우에만 true로 평가됩니다.
or어느 한 조건이 참일 경우 true로 평가됩니다.
not조건의 반대로 평가됩니다.

and

이항 연산자 and는 두 인수 중 하나를 반환합니다. 첫 번째 인수가 true로 평가되면 두 번째 인수를 반환하고, 그렇지 않으면 첫 번째 인수를 반환합니다.


print(4 and 5) -- 5
print(nil and 12) -- nil
print(false and 12) -- false
print(false and true) -- false
print(false and false) -- false
print(true and false) -- false
print(true and true) -- true

and를 사용하여 ifwhile 루프와 같은 제어 구조에서 여러 조건을 테스트할 수 있습니다. 예를 들어, 다음 ifthen 문은 두 조건이 모두 참인지 테스트합니다:


local pasta = true
local tomatoSauce = true
if pasta == true and tomatoSauce == true then
print("우리는 스파게티 저녁을 가지고 있습니다.")
else
print("뭔가 빠졌습니다...")
end
-- 출력: 우리는 스파게티 저녁을 가지고 있습니다.

or

이항 연산자 or는 두 인수 중 하나를 반환합니다. 첫 번째 인수가 true로 평가되면 첫 번째 인수를 반환하고, 그렇지 않으면 두 번째 인수를 반환합니다.


local y = x or 1
print(y) -- 1, 왜냐하면 x가 존재하지 않기 때문에 nil입니다.
local d = false
local e = d or 1
print(e) -- 1, 왜냐하면 d가 false이기 때문입니다.
print(4 or 5) -- 4
print(nil or 12) -- 12
print(false or 12) -- 12
print(false or true) -- true
print(false or false) -- false
print(true or false) -- true
print(true or true) -- true

or를 사용하여 제어 구조에서 복잡한 논리 테스트를 수행할 수 있습니다. 예를 들어, 다음 ifthen 문은 두 조건이 모두 참이거나 세 번째 조건이 참인지 테스트합니다:


local pasta = false
local tomatoSauce = true
local garlicBread = true
if (pasta == true and tomatoSauce == true) or garlicBread == true then
print("우리는 스파게티 저녁 또는 마늘빵을 가지고 있습니다.")
else
print("뭔가 빠졌습니다...")
end
-- 출력: 우리는 스파게티 저녁 또는 마늘빵을 가지고 있습니다.

not

단항 연산자 not은 인수의 반대 불린 값을 반환합니다. 인수가 false 또는 nil일 경우, true를 반환합니다. 그렇지 않으면 false를 반환합니다.


print(not true) -- false
print(not false) -- true
print(not nil) -- true
print(not "text") -- false
print(not 0) -- false

not 연산자를 사용하여 변수가 false 또는 nil일 경우에 조건문이나 루프를 트리거할 수 있습니다.


local nilVariable -- 변수는 선언되었지만 값이 없어서 nil입니다.
local falseVariable = false -- 변수는 false 값을 가지고 선언됩니다.
if not nilVariable then
print(nilVariable) -- "nil"을 출력합니다, 왜냐하면 nil은 true가 아니기 때문입니다.
end
if not falseVariable then
print(falseVariable) -- "false"를 출력합니다, 왜냐하면 false는 true가 아니기 때문입니다.
end

또한 not 연산자를 사용하여 전체 다중 조건 표현식의 반대를 테스트할 수 있습니다. 다음 코드 샘플에서, ifthen 조건문은 세가 네보다 크거나 다섯이 네보다 크지 않음을 검사합니다.


local three = 3
local four = 4
local five = 5
if not (three > four or five < four) then
print("세는 4보다 작고 다섯은 4보다 큽니다.")
end
-- 출력: 세는 4보다 작고 다섯은 4보다 큽니다.

관계형

관계형 연산자는 두 매개변수를 비교하고 boolean: true 또는 false를 반환합니다.

연산자설명관련 메타 메서드
==같음3 == 5false__eq
~=같지 않음3 ~= 5true
>초과3 > 5false
<미만3 < 5true__lt
>=이상3 >= 5false
<=이하3 <= 5true__le

산술

Luau는 일반적인 이항 연산자와 함께 거듭제곱, 나머지, 단항 부정을 지원합니다.

연산자설명관련 메타 메서드
+덧셈1 + 1 = 2__add
-뺄셈1 - 1 = 0__sub
*곱셈5 * 5 = 25__mul
/나누기10 / 5 = 2__div
//내림 나누기

10 // 4 = 2
-10 // 4 = -3

__idiv
^거듭제곱2 ^ 4 = 16__pow
%나머지13 % 7 = 6__mod
-단항 부정-2 = 0 - 2__unm

복합 할당

복합 할당 연산자를 사용하면 변수의 현재 값을 연산의 결과로 설정할 수 있습니다.

복합 할당에서 연산은 한 번 발생합니다. 예를 들어, 표현식이 테이블에서 임의의 인덱스를 생성하면, Luau는 연산과 할당 모두에 동일한 인덱스를 사용합니다.

다음 예시에서 local x = 3이라고 가정합니다.

연산자연산x의 새로운 값
+=덧셈x += 25
-=뺄셈x -= 21
*=곱셈x *= 26
/=나누기x /= 21.5
//=내림 나누기x //= 21
%=나머지x %= 21
^=거듭제곱x ^= 29
..=연결x ..= " World!" "3 World!"

기타

기타 연산자에는 연결길이가 포함됩니다.

연산자설명관련 메타 메서드
..두 문자열을 연결합니다.print("안녕하세요 " .. "세계!")__concat
#테이블의 길이tableVar = {1, 2, 3}일 경우, #tableVar == 3입니다.__len
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.