operator는 작업 또는 조건부 평가를 수행하는 기호입니다.
논리적
논리 연산자는 제공된 인수의 부울 값에 따라 값을 반환합니다. 인수가 false 또는 nil가 아니면 연산자는 그것을 true로 평가합니다. 다른 많은 언어와 달리 Luau는 모든 零 및
운영자 | 설명 |
---|---|
및 | 두 조건 모두 사실인 경우에만 진 평가 |
또는: | 조건 중 하나가 트루인 경우 트루로 평가 |
아님. | 조건의 반대로 평가 |
및
이진 연산자 and 는 두 인수 중 하나를 반환합니다. 첫 번째 인수가 true 평가되면 두 번째 인수를 반환합니다. 그렇지 않으면 첫 번째 인수를 반환합니다.
print(4 and 5) -- 5print(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 = truelocal tomatoSauce = trueif pasta == true and tomatoSauce == true thenprint("We have spaghetti dinner")elseprint("Something is missing...")end-- Output: We have spaghetti dinner
또는
이진 연산자 or 는 두 인수 중 하나를 반환합니다. 첫 번째 인수가 true 평가되면 첫 번째 인수를 반환합니다. 그렇지 않으면 두 번째 인수를 반환합니다.
local y = x or 1print(y) -- x가 없기 때문에 1이 일반적으로 0이 아니라 1입니다.local d = falselocal e = d or 1print(e) -- 1 왜냐하면 d가 거짓이기 때문에print(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- 참print(false or false) -- 없음print(true or false) -- 참print(true or true) -- true
or 를 사용하여 복잡한 논리 테스트를 수행하십시오 제어 구조 . 예를 들어, 다음 if — 1> then1> 문은 두 조건이 참이든 아니든 테스트됩니다 4>or4> 세 조건이 모두 참이든 아니든 테스트됩니다:
local pasta = falselocal tomatoSauce = truelocal garlicBread = trueif (pasta == true and tomatoSauce == true) or garlicBread == true thenprint("We have either spaghetti dinner OR garlic bread")elseprint("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 thenprint(nilVariable) -- nil 없기 때문에 nil 출력endif not falseVariable thenprint(falseVariable) -- 잘못되었으므로 "false"를 출력합니다end
또한 not 연산자를 사용하여 전체 조건 문의 반대를 테스트할 수 있습니다. 다음 코드 샘플에서, if — then 조건부 테스트는 세 개가 네 개보다 큰 것이 아니거나, 네 개가 네 개보다 큰 것입니다.
local three = 3local four = 4local five = 5if not (three > four or five < four) thenprint("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 > 5 → false | |
< | 다음 중 작은 | 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 + 2 | 5 |
. | 뺄셈 | x=-2 | 1) |
*) | 배수 | x*2 | 6 |
/= | 분할 | x /= 2 | 1.5 |
//=: | 바닥 분할 | x //= 2 | 1) |
%=: | 모듈 | x %= 2 | 1) |
^= | 익스포넌트 | x^ = 2 | 9 |
..= | 합쳐기 | x..=“세계!” | “3 월드!” |
기타
다른 연산자에는 합계 및 길이 가 있습니다.
운영자 | 설명 | 예시 | 연관 메타메서드 |
---|---|---|---|
.. | 두 문자열을 합니다. | print("Hello ".. "World!" | __construct |
# | 테이블 길이 | 테이블 변수 = 1, 2, 3 이면 #tableVar가 3입니다. | __len |