연산자

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

operator는 작업 또는 조건부 평가를 수행하는 기호입니다.

논리적

논리 연산자는 제공된 인수의 부울 값에 따라 값을 반환합니다. 인수가 false 또는 nil가 아니면 연산자는 그것을 true로 평가합니다. 다른 많은 언어와 달리 Luau는 모든 零 및

운영자설명
두 조건 모두 사실인 경우에만 평가
또는:조건 중 하나가 트루인 경우 트루로 평가
아님.조건의 반대로 평가

이진 연산자 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 을 사용하여 컨트롤 구조의 여러 조건을 테스트하십시오, 예를 들어 if 문, 및 1> while1> 루프1> . 예를 들어, 다음 4> 4> if4> — 7> <


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 는 두 인수 중 하나를 반환합니다. 첫 번째 인수가 true 평가되면 첫 번째 인수를 반환합니다. 그렇지 않으면 두 번째 인수를 반환합니다.


local y = x or 1
print(y) -- x가 없기 때문에 1이 일반적으로 0이 아니라 1입니다.
local d = false
local e = d or 1
print(e) -- 1 왜냐하면 d가 거짓이기 때문에
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

or 를 사용하여 복잡한 논리 테스트를 수행하십시오 제어 구조 . 예를 들어, 다음 if — 1> then1> 문은 두 조건이 참이든 아니든 테스트됩니다 4>or4> 세 조건이 모두 참이든 아니든 테스트됩니다:


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인 경우, 반환합니다 2> true2>. 그렇지 않으면, 반환합니다 5> false 5>.


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 없기 때문에 nil 출력
end
if not falseVariable then
print(falseVariable) -- 잘못되었으므로 "false"를 출력합니다
end

또한 not 연산자를 사용하여 전체 조건 문의 반대를 테스트할 수 있습니다. 다음 코드 샘플에서, ifthen 조건부 테스트는 세 개가 네 개보다 큰 것이 아니거나, 네 개가 네 개보다 큰 것입니다.


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.

관계형

관계 연산자는 두 매개 변수를 비교하고 button 을 반환합니다. number1 또는 1> 0> number21> 입니다.

운영자설명예시연관 메타메서드
==동일3 == 5거짓__eq:
(!)다음과 같지 않습니다.3 5 → 진실
>:보다 큰3 > 5false
<다음 중 작은3 → 진실__lt
큰 크기 또는 같은 크기3 이상은 5 이상입니다 → 거짓
작거나 같은3 ← 5 → 진실__le

연산

Lua는 부울, 모듈 및 하나 부정과 함께 사용되는 일반적인 이진 연산자를 지원합니다.

운영자설명예시연관 메타메서드
+추가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

복합 할당

결과에 첫 번째 매개 변수가 변수의 현재 값인 작업에 대한 평준 할당 연산자를 사용하여 변수를 설정할 수 있습니다.You can use compound assignment operators to set a variable equal to the result of an operation where the first parameter is the variable's current value.

복합 할당에 대한 작업은 한 번만 발생합니다. 예를 들어, 식이 테이블에서 랜덤 인덱스를 생성하면 Luau는 작업과 할당에 모두 동일한 인덱스를 사용합니다.

다음 예에서, local x = 3 을 가정합니다.

운영자작업예시새 값의 x
증가추가x + 25
.뺄셈x=-21)
*)배수x*26
/=분할x /= 21.5
//=:바닥 분할x //= 21)
%=:모듈x %= 21)
^=익스포넌트x^ = 29
..=합쳐기x..=“세계!”“3 월드!”

기타

다른 연산자에는 합계길이 가 있습니다.

운영자설명예시연관 메타메서드
..두 문자열을 합니다.print("Hello ".. "World!"__construct
#테이블 길이테이블 변수 = 1, 2, 3 이면 #tableVar가 3입니다.__len