루아의 입장에서 보는 함수는 문장과 수식을 추상화 하기 위한 주요 기능 중 하나라고 한다. 이렇게 말하면 이게 무슨 말이지? 라고 갸우뚱 한다면, 당신은 정상이다. ... 많이 접해보는 이야기가 아니기 때문일 것이다. : )

C의 함수와 동일한 개념이라고 봐도 무리가 없다. 몇가지 다른 점은 있지만 나중에 정리하도록 하고, 이 원서에는 어떻게 나왔는지 확인해 보자.

원서 확인 : http://www.lua.org/pil/5.html


재미있는 규칙이라면, 루아 함수에게 전달되는 인수들은 ( ) <-- 소괄호로 감싸서 작성 해야 하지만, 예외적으로, 인수를 하나만 가지고 있으며, 그것이 문자열이거나 테이블 생성자라면, 소괄호를 생략 할 수 있다!

루아에선 루아에서 정의한 함수들과 C에서 정의한 함수들을 모두 사용 할 수 있다. 이것 때문에 루아가 막강한 C의 후광을 받을 수 있었다.

루아의 함수에 전달된 인수는 해당 매개변수에 초기화되어 그 매개변수는 지역 변수와 같은 동작을 하게 된다.


어떻게 선언하는지 아래의 코드로 익히고, 몇가지 추가 적인 설명이 필요 하다.

위의 f 함수를 f( 3 ) 이라고 호출 했을 경우 a = 3, b = nil 이 들어 간다. 만약 f( 1, 2, 3) 을 호출 했다면 3은 버려진다. 독특하다고 느끼는 것이 바로 f의 호출이 인수가 다 만족되지 않아도 된다는 것에 있다. 5장 앞부분에서 이런 문구가 있었다. "f() 은 함수 호출임을 () 으로 루아는 판단한다" 즉 함수의 호출은 함수명 뒤에 소괄호() 를 붙여 줘야 한다.


총평

조금씩 봐야겠다. 한번에 몰아서 볼려니 지친다..

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