배정문(assignment)
예제코드 : http://www.lua.org/pil/4.1.html
변수에 값을 배정하는 문을 뜻한다. 방법은 a = 1 처럼 사용 한다.
다중 배정문
a,b = 1,2 형태로 사용 된다. 일반적으로 이렇게 안쓰지만, 함수의 반환값이 두개 이상의 값을 반환 할 때 쓰곤 한다고 필자는 말하고 있다.
여기서 잠깐,
배정문을 쓰지 않고 사용된 변수에는 기본적으로 nil값이 들어 가며, 다중 배정문시 a,b,c = 1,2 일 때 c 는 nil 값이 들어가고 a,b = 1,2,3 일 때 3은 무시 된다.
제어문
루아의 제어문으로는 반복문과 조건문으로 나뉘는데, 반복문은 while, repeat, for 이 있으며 조건문은 if 문이 있다. 각 사용 법은 예제로 대체 한다.
if문
예제 코드 : http://www.lua.org/pil/4.3.1.html
if 다음에 then 은 필수 이며 then 다음에 end는 필수이다. 하지만 else는 선택이다. then 다음에 else 나 elseif문도 제공해 주기 때문에 쉽게 파악 할 수 있다. 마찬가지로 elseif 다음에 end는 필수로 와야 한다.
while 문
예제코드 : http://www.lua.org/pil/4.3.2.html
C와 마찬가지로 while 조건이 참이면 수행 아니면 종료 이다. while 다음에 do 가 꼭 와야 하며 그 뒤에 end 는 꼭 와야 한다. { ~ } 를 do ~ end 로 하는 것과 같다.
repeat 문
예제코드 : http://www.lua.org/pil/4.3.3.html
C의 do while 과 같으며, 구문은 repeat ~ until 이고, until 다음에 조건문이 이루어져 참이면 다시 repaet 한다.
for 문( 수치형 평가 )
예제코드 : http://www.lua.org/pil/4.3.4.html
수치 조건으로 수행하는데 while의 특수화로 봐도 무리 없다. for var=exp1, exp2, exp3 do <코드뭉치> end 로 표현 가능하며 C의 for( int i = 0; i < 3; ++ i ) 와 비교 했을 때 exp1 은 int i = 0 이고, exp2 는 i < 3 그리고 exp3 는 i를 1씩 증가와 동일하다. 유념해야 할 사실은 exp1 의 값이 exp2 의 값까지 exp3를 이용하여 루프를 돈다. 역시 뒤에 do 붙이고 코드뭉치 쓰고 end 로 닫아 줘야 한다.
for 문( 반복자 함수형 )
예제코드 : http://www.lua.org/pil/4.3.5.html
여기서 반복자란 테이블의 index를 뜻한다. 아래 코드처럼
for i,v in ipairs(a) do print(v) end
ipairs(a) 를 이용하여 a의 index와 value를 i,v 에 다중 배정하여, i : index 와 v : value 를 받아 printf(v) 를 호출하면서 i 가 a 테이블의 의 끝일때까지 반복한다. for 역시 do ~ end 가 필수이다.
break 문과 return 문
예제코드 : http://www.lua.org/pil/4.4.html
break 문은 반복문의 탈출문이며 return 문은 함수의 탈출문이다. break은 그냥 빠저나가지만 return 은 값을 리턴할 때나 탈출할 때도 사용 되는 점이 다르다. 유념해야할 사항으로는 return 이나 break 은 반드시 end의 앞에 놓아야 한다. 예제코드에서 반복문의 중간이나 함수의 중간에서 리턴되는 부분을 유심히 보면 쉽게 이해 할 수 있을 것이다.
블록과 지역 변수
예제코드 : http://www.lua.org/pil/4.2.html
블록은 do ~ end 가 블록이며 then ~ end 를 블록구역 이라 한다. C에선 이러한 블록 구역에 변수가 들어 있다면 지역 변수이지만, 루아에선 명시적으로 지역이라고 명명해야 한다. 명명 방법은 키워드 "local" 을 붙여 주면 된다. 필자는 이런 local 은 불록내에서 접근하는 속도가 전역변수보다 훨씬 빠르기 때문에, 틈만 나면 사용해주는게 좋다고 말한다.
지연 변수는 블럭 외부에서 참조가 되지 않기 때문에, 이 점을 알아 두어야 한다. 참고로 루아에선 모든 변수는 전역이다.
총평
책이 참 잘 나와 있다. 쉽게 쉽게 이해가 되니, 술술 넘기자.
'책 정리 > 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 |
최근댓글