수요일 다시 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 --]] |
|
여기까지가 오늘의 FAQ 였습니다.
감사합니다.
'Corona SDK > Corona SDK TIPs' 카테고리의 다른 글
Corona TIP : display.remove()와 object:removeSelf() 의 차이 (0) | 2013.01.10 |
---|---|
수요일의 FAQ - Local Notification (Android) (0) | 2012.12.07 |
코로나로 MySQL 로부터 JSON Data 받아서 사용하기 (0) | 2012.11.23 |
원하는 애니메이션 효과 내기 -Library- (0) | 2012.11.14 |
Lua 의 퍼포먼스 향상을 위해 알아두어야 할 것 들 (0) | 2012.11.07 |
FAQ Wednesday: Display Objects (0) | 2012.10.26 |
Sprite Sheet 활용하기 (Advanced) (0) | 2012.10.12 |
FAQ Wednesday: iOS 6 버그들 (0) | 2012.10.09 |
FAQ Wednesday: iOS Builds, API Docs, and Android (0) | 2012.09.28 |
FAQ Wednesday: iPhone 5 와 iOS 6 (0) | 2012.09.21 |