루아는
- 산술 연산자
- 관계 연산자
- 논리 연산자
- 문자열 병합 연산자
- 연산자 우선순위
- 테이블 생성자
산술연산자
말그대로 산술연산을 지원하며, 추가적으로 나머지 연산자( % ) 연산자를 지원한다. 그리고 단항연산자로 '-' 연산자가 있다. 바로 부호를 바꾸어 주는 연산자이다. 나머지 연산자는 5.1 이상 부터 된다고 하니, 유념하자.즉, + - * / % - 가 지원 된다.
관계 연산자
관계 연산자는 ture false 를 반환하는 연산자 이다. 지원 되는건 < > <= >= == ~= 인데, ~= 는 C 에서 처럼 != 과 동일 하다. 문자와 숫자에 대한 비교는 허용치 않는 다는 것을 기억하면 좋겠다
논리 연산자
두 변수를 파악하여, 파악 결과에 의해 둘 중 한 변수를 반환하는 연산자이다. 말로 하자면, A와 B가 다르면 A, 로 들 수 있겠다. 그렇다면 여기서 파악이란 무엇일까? 바로 변수가 true 인지 false 인지 파악하는 것이다. 이제 논리 연산자가 무엇인지 요리했다면다면, 어떤 논리연산자가 있는지 살펴 보자면, and, or, not 을 볼 수 있을 것이다.
- A and B : A와 B가 true 라면 B, A나 B, 또는 A와 B 모두 false 라면, A 를 반환
- A or B : A나 B가 또는 A 와 B가 true 라면 B, A와 B가 false 라면, A를 반환
- not A : A가 false 라면 true, A가 true 라면 false
유용한 구문으로 A and B or C 구문이 있는데, A가 ture 라면 B 를 반환 A가 false 라면 C를 반환 해준다.
문자열 병합 연산자
.. 연산자 인데 개념은 php 의 . 과 동일하다,. 두개의 문자열을 병합해 준다. 즉 "ABC" .. "DEF" 를 "ABCDEF" 로 만들어 준다. 이때 주의 해야 할것은 숫자인데 숫자 0 .. 1 이라고 하면 "01" 이란 문자열이 된다. 숫자는 공백을 반드시 넣어 주어야 하는 주의사항이 따른다.
연산자 우선순위
.. 패스, 무조건 () 치는게 더 속편하다. C나 PHP 를 익히면서 느꼇다. 무조건 () 치는게 훨씬 좋다는 것을..
테이블 생성자
루아에는 테이블이라는 동적배열 개념이 존재 하는데, 이 테이블은 생성자에 의해서 초기화 될 수 있음을 보여 준다. 테이블 생성은 a = { } 로 할 수 있어서 a.x = 1 이 가능하다. 이럴 때 동적으로 변경되는 타입이 참 고맙다.
테이블의 생성자를 이용해 여러가지 이용이 가능하지만, 어떻게 사용 해야 하는지만 알아 본다면, 첫번째 변수에 대한 인덱스 키는 문자열이 아니라면 0 으로 주지 말 것을 권하고 있다. 왜냐하면 대부분의 라이브러리가 1번째 부터 읽기 때문이라고 한다 ..
이제 예를 들어 보자.
a = { x = 3, y = 4 }
에서 x는 "x" 이고 y는 "y" 로써 갖는다 즉, 문자열이다.
print( a[x] ) 는 nil 이지만 print( a["x"] ) 은 3이다.
테이블에는 테이블을 저장 할 수 있는데, 복잡해 지니, 생략한다.
관련링크
총평
지루한 이론 시간, nil 과 false 는 다른 타입이다. 하지만 논리연산에선 같은 변수로 취급한다는 것을 유념해야 할것 같다. .. 테이블에 테이블을 넣을 수 있다는 것만 알면 될 듯 싶다. 어차피 사용 하려 할 때 좀 더 생각해야 할테니 말이다. : )
'책 정리 > Programming in Lua' 카테고리의 다른 글
루아(Lua), 함수 양념 고급 활용 하기 ( 비전역 함수: Non-Global Functions ) 편 (0) | 2008.12.14 |
---|---|
루아(Lua), 함수 양념 고급 활용 하기 ( 클로저 : Closures ) 편 (0) | 2008.12.14 |
루아(Lua), 함수 양념 고급 활용 하기 ( 함수 고급 활용 : More about Functions ) (0) | 2008.12.14 |
루아(Lua), 함수 개념 양념 뿌리기 ( 이름 있는 인수 편 : Named Arguments ) (0) | 2008.12.14 |
루아(Lua), 함수 개념 양념 뿌리기 ( 가변 개수 인수 편 : Variable Number of Arguments ) (0) | 2008.12.14 |
루아(Lua), 함수 개념 양념 뿌리기 ( 다중 반환 편 ) (0) | 2008.12.13 |
루아(Lua), 함수 개념 양념 뿌리기 ( 기본 ) (0) | 2008.12.13 |
루아(Lua), 문장 개념 먹기 (0) | 2008.12.03 |
루아(Lua), 타입 개념 사냥하기 (2) | 2008.12.03 |
루아(Lua), 그 광활한 한계 (Lua, ... :) (0) | 2008.12.03 |
최근댓글