반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


Posted on . Written by


수요일 다시 FAQ 시간 입니다. 오늘은 Lua 와 관련해서 자주 들어오는 질문을 모아봤습니다. basic Lua language 프로그래밍에서 루아 언어만의 특징도 다뤘습니다.


1. Do I need to end Corona code lines with “;”?


아래와 같은 Corona(Lua) 코드를 보셨을 겁니다.


local myRect = display.newRect( 0, 0, 100, 50 );


또 아래와 같은 코드도 보셨을 겁니다.


local myRect = display.newRect( 0, 0, 100, 50 )


두 코드가 다른 것은 맨 마지막에 semicolon (“;”) character가 있느냐 없느냐죠. 많은 languages(JavaScript, C++, ObjectiveC, etc.) 라인의 끝을 가리키는 표시로 semicolon을 요구합니다. 하지만 Lua 는 굳이 semicolon을 넣지 않아도 스스로 알아서 라인의 끝을 인식합니다. 또한 맨 마지막에 semicolon 을 넣어도 상관은 없습니다. 단지 반드시 넣어야 되는 것은 아닙니다.


가끔 한 줄에 여러 statement를 넣을 때가 있죠.


a = 100; b = 200


Lua 에서는 아래 코드도 틀린 구문이 아닙니다.


a = 100 b = 200


2. Can Lua functions return multiple values?


이 기능은 Lua 만의 기능입니다. 바로 함수에서 여러 return 값을 반환할 수 있다는 거죠.

아래 예제를 보세요.


local function testConnection()
    if not noConnection then
        return false, "Connection Failed!"
    else
        return true
    end
end

local result, reason = testConnection()
print( result, reason )


connection이 fail 되면 false를 return 하고 동시에 string 도 return 할 수 있습니다. connection 이 제대로 작동하면 true 만 return 합니다. (reason 의 값은 nil 이 될 겁니다.)


3. Can you assign multiple values to multiple variables?


또한 Lua 에만 있는 편리한 기능이 한번에 여러 변수에 여러 값들을 대입하는 겁니다.


local red, green, blue = 100, 255, 128


이것은 아래 코드와 같습니다.


red = 100
green = 255
blue = 128


둘 중 어느 방법을 사용할 지는 여러분의 선택에 달렸습니다. 둘 다 맞는 거니까요.


4. Are parentheses needed in “if” statements?


몇 몇 language 들에서는 conditional statement 에 parentheses({}) 를 사용해야 합니다.


-- C code
if ( a > b) {
     ...
}


Lua 에서는 optional 입니다. 단지 then 과 end 를 사용해야합니다.


-- Lua code
if a > b then
    ...
end 


5. How do I add Block Comments to my code?


Block 주석은 코드에 어떤 설명을 넣거나 개발을 할 때 유용하게 사용할 수 있습니다.

아래 예제가 있습니다.


--[[
local function testConnection()
 if not noConnection then
 return false, "Connection Failed!"
 else
 return true
 end
end
--]]


이 주석은 “––[[“로 시작해서 ”––]]”로 끝났습니다. 루아에서는 이 주석을 해제하는 간단한 방법을 제공합니다. 주석 시작부분에 - 를 한번 더 넣으면 주석이 해제 되는 겁니다.


---[[
local function testConnection()
 if not noConnection then
 return false, "Connection Failed!"
 else
 return true
 end
end
--]]


위의 코드는 실행 될 겁니다. 왜냐하면 “–––[[“ (three dashes instead of two)를 사용했기 때문이죠.


여기까지가 오늘의 FAQ 였습니다.


감사합니다.


반응형

Comment