루아 함수의 그 독틈함은 간혹 C의 함수와 비슷한것이 있는데, 그 중 하나가 바로 가변 개수 인수를 받는 함수 이다. C에서 처럼 특별히 무엇인가 작업을 요하는것은 없고, 아주 간단하게 작성 할 수 있다. 다음 함수를 보자. function add ( ... ) local s = 0 for i, v in ipairs{...} do s = s + v end return s end print( add( 3, 4, 10, 25, 12 ) ) add 함수의 ...
Lua 검색 결과
저번 장에서 함수가 무엇이고 어떻게 정의하면서 어떻게 쓰이며 독특한 특징을 알아 봤다면, 이번에는 그 독특함 중 신기한 다중 반환에 대해서 이야기 한다. 일전에 다중 배정문에 대해서 설명을 했었다. 다중 배정문이란 a, b = 1, 2 문법을 말한다. 이 다중 반환은 이 다중 배정문을 이용하여, 할당 받을 수 있게 된다. 예를 들어 string.find("hello Lua users", "Lua") 라고 했을 경우 두개의 정수를 벹어 내는데 받을 때, s, e = string.find("hello Lua users", "Lua") 렇게 하면 된다. 그렇다면 어떻게 두개의 값을 반환시킬수 있을까? 간단하다 아래의 소스 코드처럼 하면 된다. function two_func() local m, mi = 1,2..
루아의 입장에서 보는 함수는 문장과 수식을 추상화 하기 위한 주요 기능 중 하나라고 한다. 이렇게 말하면 이게 무슨 말이지? 라고 갸우뚱 한다면, 당신은 정상이다. ... 많이 접해보는 이야기가 아니기 때문일 것이다. : ) C의 함수와 동일한 개념이라고 봐도 무리가 없다. 몇가지 다른 점은 있지만 나중에 정리하도록 하고, 이 원서에는 어떻게 나왔는지 확인해 보자. 원서 확인 : http://www.lua.org/pil/5.html 재미있는 규칙이라면, 루아 함수에게 전달되는 인수들은 ( )
사냥하고 요리했으면 먹는 일만 남았다. 문장 자체는 다른 언어와 비슷 하니 쉽게 설명 되어 진다. 문장으로는 배정문과 제어문, 프로시저 호출문이 있으며, 특이하게 다중 배정문과 지역변수 선언문이 있다. 배정문(assignment) 예제코드 : http://www.lua.org/pil/4.1.html 변수에 값을 배정하는 문을 뜻한다. 방법은 a = 1 처럼 사용 한다. 다중 배정문 a,b = 1,2 형태로 사용 된다. 일반적으로 이렇게 안쓰지만, 함수의 반환값이 두개 이상의 값을 반환 할 때 쓰곤 한다고 필자는 말하고 있다. 여기서 잠깐, 배정문을 쓰지 않고 사용된 변수에는 기본적으로 nil값이 들어 가며, 다중 배정문시 a,b,c = 1,2 일 때 c 는 nil 값이 들어가고 a,b = 1,2,3 일 ..
루아는 애초에 다른 언어에서 동작 될 수 있도록 개발 되었기 때문에, 확장성이 어마어마하다고 한다. 이는 접착 언어(glue language)로 괜찮은 평가를 받고 있는 증거이다. 어디에 쓸까? 응용할 수 있는 부분은 "알고리즘" 부분이라고 생각한다. 프로그램 생명 주기 동안, 알고리즘이 개선 되었을 때, 재컴파일 하지 않고, 스크립트만 바꾸어 주면 되기 때문이다. 게임을 예로 들자면, 여러 공식들이 있을 것이다. (아직 써보진 안아서 이거 밖에는 모르겠다.) 이는 개발 중 시간을 많이 아낄 수 있음을 보여주며, 이렇게 벌어둔 시간으로 "최적화"를 지연평가(ㅋㅋ)하여, "설계"에 몰두할 수 있는 장점을 지닐 수 있게 된다. 이번에 맡은 프로젝트로 인하여 시작하게 되었는데, ... 뒤로 미루고 미루고 미루..
최근댓글