다른 언어와마찬가지로루아스크립트는 여러 가지 식별지(변수이름과함수이름)들로 이루어진다.

식별자는영문자와숫자,

밑줄로구성되나,

첫글자가숫자이어서는안된다

그리고 Start 처럼 밑줄로 시작하고 그 다음 글자가 대문자인 식별자도 피해야 한다.

그런 형태의 식별자들은 루아 자체를 위해 예약된 것이기 때문이다.

 

루아 예약어들 -----------------------------------------------------------------------

 

루아의 예약어들
and         

local
break         

nil
do         

not
else

or
elseif

repeat
end

return
false

then
for

true
function

until
while
In

if

 

일반적인 변수 명 규칙 -----------------------------------------------------------------------

 

• 상수는 대문자와 밑줄만 사용한다. 예를 들면 MYJONSTANT
• 변수는소문자로시작한다 예를들면 myVariable
• 전역 변수는 소문자 g 로 시작한다 예를 들면 gMyGlobal
• 함수는대문자로시작한다 예를들변 MyFunction()

 

주석 -----------------------------------------------------------------------

 

물론 변수의 이름이야 권장하는 것이다. 굳이 따를것은 없지만 개발환경상에서 다른 동료들을 생각한다면 최대한 지켜주는 것이 옳다.

 

주석은 대시 두 개(--)로 시작해서 그 줄의 끝까지이다. 그리고 대괄호 두 개를 이용해서
여러줄에걸친주석을지정히는것도가능하다. 다음에두가지 예가모두나와있다.


-- 이 줄 전체가 주석이다 .
myValue 7 -- 이렇게 문장 뒤에도 주석을 넣을 수 있다 .
- - [ [
        function Counting()
        end
- -]]

 

변수의 타입결정(그런거 없다! 변수의 타입은 강자 아니 루아가 결정한다!) -----------------------------------------------------------------------

 

루아에서는 변수를 미리 선언하지 않고도 사용할수 있다〈물론 이런 방식을 좋아하는 사
람도 있고 반대하는 사람들도 있지만). 변수를 미 리 선언해둘 펼요가 없으므로(변수는 제
일 처음 쓰일 때 생성된다) 변수가 실제로 펼요한 곳에 바로 집어넣는 것이 가능하다. 형
식주의자들은 이런 방식이 지저분한 코드를 만들어 낸다고 주장한다. 변수를 명시적으
로 선언하지 않으면 변수를 관리하기 힘들며, 다른 함수에서 같은 이름의 변수를 시용
하는 실수를 저질러서 자료가 깨지는 위험이 았다는 것이다. 아주 틀린 말은 아니다. 루
아가 깐깐하게 점검해주지 않으므로 프로그래머가 변수들을 확실하게 관리해야 한다는
것은 사실이다. 그리고 루아에서는 변수에 형식(type. 문자열 형식 , 수치 형식 등등)을
지정할 필요도 없다(사실 지정할 수도 없다). 변수의 형식은 변수에 배정된 값을 가지고
루아가 판단한다. 이런 방식은 융통성이 좋다는 장점이 있지만, 변수 선언에서와 마찬
가지로 변수를 제대로 관리하지 않으면 골치 아픈 벼그가 생기기 쉽다는 단점도 가지고
있다

 

특수문자 -----------------------------------------------------------------------

 

다양한 수치 선언-----------------------------------------------------------------------

• myNumber = 7
• myNumber = 0.765
• myNumber = 7. 65e8 (7 .65XI08, 즉 765,000,000.)
• myNumber = 7. 65e-2 (7.65XI0", 즉 0765.)

 

테이블 -----------------------------------------------------------------------


루아의 테이블은 루아에서 가장 강력하면서도 햇갈리는 요소이다‘ 테이블은 이후의 장
들에서 좀 더 자세히 설명 , 사용할 것 이 므로, 여기서는 일단 테이블을 배열처럼 사용할
수 있다는 점만 이야기하고 넘어가겠다.
디음을 콘솔에서 시험해 보기 바란다.
Ready> myTable {2 .4. 6.8. 10}
Ready> print(myTable[3])
6
Ready> myTable[6] 12
Ready> print(myTable[6])
12
이 문맥에서 태이블은 일련의 값들을 담는 단순한 배열처럼 쓰인다 테이블의 특정 값
을 얻기 위해 대괄호를 사용하는 방식도 배열과 동일하다, 그러 나 테이블이 곧 배열인
것은 아니다. 테이블은 5 장에서 좀 더 이야기한다

 

테이블의 선언은 일단 { }으로 한다. [] 아니다.
 

지역변수와 전역변수-----------------------------------------------------------------------


기본적으로 모든 루아 변수는 본질적으로 전역 변수이다 즉, 루아 변수는 스크립트 전체에서 접근할 수 있으며 스크립트 실행 이 끝날 때까지 유지된다

(그리고 변수의 값은 스크립트에서 명시적으로바꾸지 않는한계속동일하게유지된다).

이러한안정성은스크립트 프로그래머에게는 편리한 성질 이지만,

수많은 루아 스크립트들과 함수들로 된 게 임을만들때에는혼란의요인이될수있다.
의도적으로 전역 변수로 사용할 변수의 이름은 소문자 g 로 시작하는 것이 좋대“식별자이름과 주석” 절 참고).

그러면 디버깅에 도움이 된다. 또한 가능한 곳에서는 항상 지역변수를 사용하는 것이 좋다.

또한 가능한 곳에서는 항상 지역변수를 사용하는 것이 좋다.

지역 변수는 그 변수가 정의된 스크립트 블록 안에서만 유효하며 그 블록의 실행이 끝
나면 파괴되는 변수이다. 여기서 블록이란 어떤 제어 구조나 함수에만 속하는 코드 범위를말한다,


지역 변수를 선언(또는 정의)할 때에는 local 이라는 키워드를 사용한다

이 때 초기값을 지정하지 않을수도있디〈그러면 nil 값을가지게된다)
local myValue -- nil     을 값으로 하는 지역 변수 ,
local myValue23         초기 값이 3 인 지역 변수.


변수의 범위(변수가유효한영역)는변수선언의 위치에 의해 결정된다. 다음예를보자.
function MyFunction()
    local myX = 7 --01 변수는 힘수 실행이 물나면 파괴된다.
        if myX < 10 then
            local myY "hello world" --01 변수는 이 if 문 블록이 끝나면파괴된다.
            print(myY) -- "hello world" 를 출력
        end
    print(myY) -- myY 는 위의 블록이 끝나면서 파괴되었으므로 nil 을 출력
end


프로젝트가 커지면서 더 많은 스크립트 파일들이 추가됨에 따라,게임 프로젝트의 어딘
가에서 전역 변수를잘못설정, 시용하는위험이 커진다 지역 변수를최대한사용하는
것은그런 위험을피하고코드를좀더 깔끔하게 유지하는데 도웅이 된다

'게임개발공부 > LUA공부' 카테고리의 다른 글

테이블  (0) 2014.01.13
문자열 정리  (0) 2014.01.13
연산자.  (0) 2014.01.13
루아스크립트 콘솔에서 실행하기  (0) 2014.01.13
루아에서 변수의 종류  (0) 2014.01.13
Posted by JJOREG