이 포스트를 만든 목적 루아 일반 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 문이다. :) tb = {13, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1} for k, v in pairs(tb) do print(k, v) end php 의 foreach, C#의 foreach, c++ boost의 BOOST_FOREACH 와 비슷한 기능을 한다. 어떻게 이해 해야 하는가? 루아 일반 for 문은 다음과 같다, for in do en..
책 정리/Programming in Lua 검색 결과
음 제목을 좀 바꾸었다. 제목 만드는것이 매우 힘들기 때문이다 : ) 그건 그렇다고 하고, 여기서 말하고자 하는 것은 "루아에서 C코드로 만든 라이브러리를 끌어올 수 있다." 이다. 일반적으로 루아에선 ANSI C에서 구현할 수 없는 기능을 포함하지 않지만, 이렇게 동적으로 라이브러리를 끌어 올 수 있는 것에는 예외를 두고 있다. 루아는 이 기능을 특정 플랫폼에서만 지원을 하고 있는데, 윈도우, 맥 OS X, 리눅스 FreeBSD, 솔라시스 및 UNIX 가 있다. 현재 자신의 플랫폼에서 라이브러리를 끌어올수 있는지 체크하는 방법은, 다음과 같이 하고, 그 결과를 보면 된다. print( package.loadlib("a","b") ) 를 실행 했을 때, "존재하지 않는 파일" 이라고 오류가 뜨면, 기능을..
8장부터는 컴파일과 실행 및 오류 검사에 대한 이야기를 하고 있다. 이번 8.1 에선 컴파일에 대한 이야기를 하고 있는데, 루아는 인터프리터 언어로써, 실행 중에 코드를 컴파일 할 수 있는 기능을 제공해 주고 있다고 한다. 파일을 컴 파일 할 때는 두개의 명령어가 있는데, 하나는 dofile, 다른 하나는 loadfile 이다. dofile과 달리 loadfile은 오류를 일으켜도 정지하지 않고, 오류 코드를 반환해 준다. 파일을 컴파일 하는 두 컴파일 함수는 무엇이 다를까? dofile의 경우, 호출 한 번에 파일 내부의 모든 실행을 한번 실행해 준다. 간단한 작업을 한번만 처리 하고자 할 때는 dofile이 유용하다고 한다. loadfile의 경우, 호출 한번에 파일 내부의 모든 실행을 .. 하지 않..
음.. 진짜 반복자라는 말이나. 클로저라는 말이나. 어찌 보면 다 함수들인데 이런 말들이 섞이면서 매우 햇갈리게 된다. 그 이유는 루아가 버전을 올리면서, 생겨난 일이지 아닐까 싶다. 일반 for문의 원리는 아직 변하지 않으므로, 이번 장은 패스 한다. 이번 항목의 마지막 결론을 인용하자면, 루아의 Old 버전에서 사용 한 방법이고, 대부분의 경우 이 방법은 쓰이지 않을 것이라고 한다. 관련 링크 : http://www.lua.org/pil/7.5.html 총평 생각 없이 책 보기 시작한지 어느덧..
이번 항목은 일반적인 반복자 형태가 아닌, 좀 복잡한 형태로 반복을 해야 할 경우에, 클로저를 사용하는게 더 좋다는 이야기를 하고 있다. 클로저란? C++ 과 비교하자면, 함수 오브젝트를 들수 있겠다. 다른 방법으론 table을 이용한 복잡한 반복자를 구현 할 수 있겠으나, 책에선 성능상의 이유로 클로저가 더 좋다고 이야기 한다. 클로저는 테이블 생성하는것보다 부하가 적으며, 테이블 필드 접근보다 더 빠르기 때문이라고 한다. 관련 링크 : http://www.lua.org/pil/7.4.html 총평 !? 요즘 들어 생각을 안하고 책을 보는거 같다..
앞서 일반 for문을 알아 보았다면, 일반 for문에서 보유한 3개의 변수 중 첫번째 함수 변수가 반복자 생성 함수(클로저)에서 뽑아낸 반복자와 틀리다는 것을 알 수 있을 것이다. 루아에선 for문의 함수 변를 "무상태 반복자 : Stateless Iterators" 라 부른다. 이 무상태 반복자는 클로저에서 처럼 반복자 내부 모두 처리하는 것은 아닌, 외부의 인자로 내부의 연산을 수행하는 함수를 가리킨다. 좋은 점은 for 문이 사라지면, 자동으로 stack에서 이 외부 변수를 사라지게 됨으로 최적화가 되어 지는 것으로 보여 진다(.. 물론 추측이다.) 일반 for문의 함수 변수에 이 무상태 반복자 함수를 할당하는게 더 좋다고 하니까, 이 규칙만 알고 넘어가자. 총평 .. 개념 이해..
최근댓글