연산자

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

연산자 는 작업이나 조건부 평가를 수행하는 상징입니다.

논리

논리 연산자는 주어진 인수의 부울 값에 따라 값을 반환합니다.Logical operators return values depending on the boolean values of the given arguments.인수가 false 또는 nil가 아니면 연산자가 그것을 true로 평가합니다.다른 많은 언어와 달리 Luau는 0과 빈 문자열을 모두 true로 간주합니다.다음 표에서는 논리 연산자가 조건에서 어떻게 동작하는지 요약합니다 조건.

운영자설명
and두 조건 모두 참인 경우에만 true로 평가
or조건이 모두 참이면 true로 평가되며
not조건의 반대로 평가

그리고

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


print(4 and 5) -- 5
print(nil and 12) -- 무효
print(false and 12) -- 거짓
print(false and true) -- 거짓
print(false and false) -- 거짓
print(true and false) -- 거짓
print(true and true) -- true

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


local pasta = true
local tomatoSauce = true
if pasta == true and tomatoSauce == true then
print("We have spaghetti dinner")
else
print("Something is missing...")
end
-- Output: We have spaghetti dinner

or

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


local y = x or 1
print(y) -- x가 존재하지 않으므로 x가 없고 따라서 0입니다 1 because x doesn't exist and is therefore 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) -- 참
print(false or false) -- 거짓
print(true or false) -- 참
print(true or true) -- true

를 사용하여 컨트롤 구조에서 복잡한 논리 테스트를 수행할 수 있습니다.예를 들어, 다음 - 문은 두 조건이 참인지 아니면 세 번째 조건이 참인지 테스트합니다:


local pasta = false
local tomatoSauce = true
local garlicBread = true
if (pasta == true and tomatoSauce == true) or garlicBread == true then
print("We have either spaghetti dinner OR garlic bread")
else
print("Something is missing...")
end
-- Output: We have either spaghetti dinner OR garlic bread

아님

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


print(not true) -- 거짓
print(not false) -- 참
print(not nil) -- 참
print(not "text") -- 거짓
print(not 0) -- false

변수가 not 또는 false 인 경우 조건부 또는 루프를 트리거하기 위해 nil 연산자를 사용할 수 있습니다.


local nilVariable -- 변수가 선언되었지만 값이 없으므로 공백입니다
local falseVariable = false -- 변수는 false의 값으로 선언됩니다
if not nilVariable then
print(nilVariable) -- nil이 true가 아니기 때문에 "nil"을 출력합니다
end
if not falseVariable then
print(falseVariable) -- 출력은 "false"이므로 false가 true가 아닙니다
end

전체 다중 조건 문의 반대를 테스트하기 위해 not 연산자를 사용할 수도 있습니다.다음 코드 샘플에서는 세 가지 중 하나가 네 가지보다 크거나 다섯 가지가 네 가지보다 크지 않은 조건부 테스트 if - then을 수행합니다.


local three = 3
local four = 4
local five = 5
if not (three > four or five < four) then
print("Three is less than 4 and five is greater than 4.")
end
-- Output: Three is less than 4 and five is greater than 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("Hello " .. "World!")__concat
#테이블 길이만약 tableVar = {1, 2, 3} 이면, #tableVar == 3 이다.__len