루아의 함수 개념을 이해하기 위해서 각 항목별로 정리를 했었다. 그 항목별로 읽다가 한개씩 한개씩 중요한 문장이 나오는데, 이번 항목에서는 "루아의 매개변수 전달 방식은 위치를 기반하여 행해진다." 가 중요하다고 생각한다.

루아의 함수시스템을 이해하는데, 위치를 기반으로 행해진다는 것은 C와 C++ 과는 전혀 다른 체계를 따른다는것과 같다. 아마도 동적 타입 때문에 위치로 밖에 할 수 없으니 당연할 지도 모르겠다.

이런 위치기반 인수 전달 방식의 루아 함수에서 "이름"으로 인수를 전달 할 수도 있는데, 그 이야기를 지금부터 하려고 한다.

 

루아의 table 이라는 자료구조를 이해했다면 다음의 table이 무엇을 나타내는지 쉽게 알 수 있을 것이다.

보면 알겠지만 table.first 와 table.end 로 접근하여 해당 값을 확인 할 수 있을 것이다. 이것이 바로 이름 있는 인수를 전달하는 핵심 원리이다. 함수가 테이블을 매개변수로 받아, 그 테이블의 특정 Key 로 접근하여, 사용 하면 되는 것이다.

이렇게 말만 하면 갸우뚱 거리는게 정상이므로, 다음 코드를 보고 다시 정리해 보자. 


이 코드에서 보면 알 수 있듯이, table 을 받아서 print 가 hangle_start 와 hangle_end 를 출력하게 된다. 만약 다른 값을 넣게 되면, 작동하지 않는다. 

어디에 쓰일지는 직접 고심해 보는것이 좋을 듯 하기도 하다. 나 같은 경우에는 잘 모르겠다. 책에선 윈도우 띄울때 쓰면 유용할 것이라고 하는데, 아마도 이런 기본값으로 띄울수 있는 함수에서 유용할듯 싶다.

 

총평

보통 컴퓨터 언어에서 함수가 제일 중요하듯이, 모르겠다 싶으면 되돌아 와서 정리된것을 봐야겠다.

관련 링크

http://www.lua.org/pil/5.3.html

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기