루아 함수의 그 독틈함은 간혹 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 함수의 ...
책 정리/Programming in 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 일 ..
타입 개념을 사냥했으니, 이제 수식 개념을 요리하자. 변수를 어떻게 사용 할지는 수식으로 결정짓기 때문에, 반드시 요리해야 한다. 루아는 산술 연산자 관계 연산자 논리 연산자 문자열 병합 연산자 연산자 우선순위 테이블 생성자 를 가지고 있다. 산술연산자 말그대로 산술연산을 지원하며, 추가적으로 나머지 연산자( % ) 연산자를 지원한다. 그리고 단항연산자로 '-' 연산자가 있다. 바로 부호를 바꾸어 주는 연산자이다. 나머지 연산자는 5.1 이상 부터 된다고 하니, 유념하자. 즉, + - * / % - 가 지원 된다. 관계 연산자 관계 연산자는 ture false 를 반환하는 연산자 이다. 지원 되는건 = == ~= 인데, ~= 는 C 에서 처럼 != 과 동일 하다. 문자와 숫자에 대한 비교는 허용치..
아마도 언어를 배움에 있어, 제일 먼저 알아야 하는 것은 그 언어가 지원하는 타입을 먼저 알아야 할 것이다. 조사, 동사, 명사.. 처럼은 아니구나... 컴퓨터 언어로 국한 될 듯 싶다. : ) C와 다르게 루아는 동적 타입 지정 언어이다. PHP와 비교한다면 변수의 선언 없이 그냥 쓰면 되는 점이 똑같다. 쉽게 풀어 보면, "타입 자체에는 의미를 두지마, 변수 자체에 의미를 두라구! 변수가 있기에 타입이 있는 거라구!" 란 개념으로 정리가 된다. 그래도 타입이 어떤게있는지 정도는 알아야 한다.^^; 왜냐하면 컴퓨터 언어에서는 최소한 숫자형과 문자형은 구분짓기 때문이다. : ) 루아에는 총 8가지의 타입이 있다. nil : 닐 타입 C언어의 NULL 과 비슷하다. DB의 null 과 비슷하다. numbe..
최근댓글