이 포스트를 만든 목적
- 루아 일반 for 문이 맨날 헷갈려서 정리하려고
이 포스트의 준비물
- firefox 4 b7
- eclipse 3.6.1 + vrapper
- lua 5.1.4
참조 링크
- http://www.lua.org/pil/7.2.html
내용
일반 루아 for 문이란 무엇인가?
- 루아 for 문에 in 키워드가 들어간 for 문이다. :)
- php 의 foreach, C#의 foreach, c++ boost의 BOOST_FOREACH 와 비슷한 기능을 한다.
어떻게 이해 해야 하는가?
- 루아 일반 for 문은 다음과 같다,
- 일단 일반 lua for 문에는 변수 3개가 숨어 있다고 외우자.
- 루이 알반 for 문을 풀어 해치면 다음과 같이 변한다.
- 핵심은 <exp-list> 의 반환값 중 첫째는 반복자 함수:_f, 둘째는 불변변수:_s(보통 테이블 자체 그대로), 셋째는 제어변수 초기값:_var을 할당한다.
- <exp-list> 후 _f(_s, _var) 를 실행하고, 이 반환값을 <var-list>에 넣는다.
- <var-list> 중 첫번째 값을 _var 에 대입하고, _var 가 nil 이 아니면, <body> 실행 한다.
- 다시 _f(_s, _var) 를 수행해서 _var 가 nil 이 아닐때까지 반복한다.
여담
- 말로 설명하려니까 길어져서, 코드로 대체한다.
- 백트랙킹을 하기 위해 테이블을 훎는 재귀 함수 만들려고 하니까, 일반 for문이 생각 안나더라.
:wq
'책 정리 > Programming in Lua' 카테고리의 다른 글
루아(Lua) 8.2, C 패키지 ( C Packages ) (0) | 2008.12.23 |
---|---|
루아(lua), 8.1 컴파일, 실행 및 오류 검사(Compilation, Execution, and Errors) : 컴파일 (0) | 2008.12.21 |
루아(Lua) 7.5 : 일반 for 문 개념 잡기 ( 진짜 반복자 : True Iterators ) 편 (0) | 2008.12.21 |
루아(Lua) 7.4, 일반 for문 보충 개념 잡기 ( 복잡한 상태를 가진 반복자 함수 : Iterators with Complex State ) 편 (0) | 2008.12.21 |
루아(Lua), 일반 for문 보충 개념 잡기 ( 무상태 반복자 : Stateless Iterators ) 편 (0) | 2008.12.17 |
루아(Lua), 반복자와 일반 for문 ( 반복자와 클로저 : Iterators and the Generic for ) 편 (2) | 2008.12.14 |
루아(Lua), 함수 양념 고급 활용 하기 ( 함수 꼬리 호출 : Proper Tail Calls ) 편 (0) | 2008.12.14 |
루아(Lua), 함수 양념 고급 활용 하기 ( 비전역 함수: Non-Global Functions ) 편 (0) | 2008.12.14 |
루아(Lua), 함수 양념 고급 활용 하기 ( 클로저 : Closures ) 편 (0) | 2008.12.14 |
루아(Lua), 함수 양념 고급 활용 하기 ( 함수 고급 활용 : More about Functions ) (0) | 2008.12.14 |
최근댓글