루아의 입장에서 보는 함수는 문장과 수식을 추상화 하기 위한 주요 기능 중 하나라고 한다. 이렇게 말하면 이게 무슨 말이지? 라고 갸우뚱 한다면, 당신은 정상이다. ... 많이 접해보는 이야기가 아니기 때문일 것이다. : )
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() 은 함수 호출임을 () 으로 루아는 판단한다" 즉 함수의 호출은 함수명 뒤에 소괄호() 를 붙여 줘야 한다.
총평
조금씩 봐야겠다. 한번에 몰아서 볼려니 지친다..
'책 정리 > 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.03 |
루아(Lua), 수식 개념 요리 하기 (0) | 2008.12.03 |
루아(Lua), 타입 개념 사냥하기 (2) | 2008.12.03 |
루아(Lua), 그 광활한 한계 (Lua, ... :) (0) | 2008.12.03 |
최근댓글