and, or, not 보다는
&&, ||, ! 이 익숙하실겁니다.
어차피 사용법은 같아요. 표현 방법만 다를 뿐입니다.
모든 논리연산자는 false와 nil을 false로 판답하고 그 외의 모든 경우를 true로 판단합니다.
0 또한 true입니다.
먼저 and는 and로 묶인 양쪽의 조건식이 모두 참이어야 참을 반환합니다.
a, b, c는 각각 10, 20, 30입니다.
9번째 줄 if의 조건식을 보면
a<b, a<c가 있고 해당 식들 사이에 and가 있습니다.
a는 b보다 작고 "그리고" a는 c보다 작습니다.
그러니 해당 조건이 참이 되는겁니다.
not은 해당 조건을 반대로 뒤집습니다.
13번째 줄 a>b는 거짓입니다.
그런데 해당 거짓인 식 앞에 not이 붙어있습니다.
거짓의 반대는 참이니 해당 조건이 참이 됩니다.
Lua에서는 0또한 참이라는것을 잊지 마세요.
이제 21번째 식을 보면 or 가 있습니다.
a>b "이거나" a<c. 따라서 참이 됩니다.
Lua의 논리 연산자 반환 규칙은 다음과 같습니다.
not | 언제나 false나 true를 반환합니다. |
and | 첫 번째 인자가 nil이나 false가 아니면 첫 번쨰 인자를 반환하고 그렇지 않다면 두번째 인자를 반환합니다. |
or | 첫 번째 인자가 nil이나 false가 아니면 첫 번째 인자를 반환하고 그 외의 경우에는 두 번째 인자를 반환합니다. |
Lua의 관계 연산자는 다음과 같습니다.
== | 우선 피연산자들의 타입을 비교합니다. 다르면 false입니다. 타입이 같으면 값을 비교합니다. 다르면 false입니다. |
~= | 다른지 확인. 만약 두 인자가 수치라면 비교부터 합니다. 문자열이라면 현재 로케일 기준에 맞춰서 비교합니다. 그 외에는 >를 <로 바꾸고 <는 >로 바꾸어 연산을 시도합니다. |
<, > | 크기를 비교합니다. 이하, 이상이 아닙니다! |
<=, >= | 크기를 비교합니다. 이상, 이하입니다. |
+=, -= 등등... | Lua에는 없습니다. |
Lua는 일반 산술 연산자를 지원합니다.
이항 연산자들은 다음과 같습니다.
+, -, *, /, %, ^
%는 나머지, ^는 제곱을 의미합니다.
단항 연산자는 -가 있습니다.
연산에는 피연산자로 수치와 문자열 모두를 사용할 수 있습니다.
또한 자동적으로 수치 값으로 변환된 후 연산을 수행합니다.(강제 형변환)
강제 형변환 : Lua는 수치 연산에 문자열을 사용하면 문자열을 수치로 변환합니다.
(문자열의 시작과 끝에 공백이나 기호가 들어갈 수 도 있습니다)
반대로 문자열을 사용할 것으로 예상할 수 있는 곳에 수치를 사용한다면 수치를 적절한 형태의 문자열로 변환합니다. 의도적으로 수치를 문자열로 바꿀 때에는 문자열 라이브러리의 format() 함수를 사용하면 됩니다(string.format())
지수 연산은 거듭 제곱을 사용합니다.
'x^(-0.5)'는 루트x의 역수가 됩니다.
++, -- 는 Lua에서 없습니다.
'Lua > 정리' 카테고리의 다른 글
Lua 정리 ) 코루틴 (0) | 2022.01.08 |
---|---|
Lua 정리 ) 함수 (0) | 2022.01.07 |
Lua 정리) for, if (0) | 2022.01.06 |
Lua 정리 ) 문법 (0) | 2022.01.06 |
Lua 정리 ) 값과 타입 (0) | 2022.01.05 |
댓글