'게임개발공부/LUA공부'에 해당되는 글 7건

  1. 2014.01.13 조건문
  2. 2014.01.13 테이블
  3. 2014.01.13 문자열 정리
  4. 2014.01.13 연산자.
  5. 2014.01.13 루아의 변수 선언과 규칙.
  6. 2014.01.13 루아스크립트 콘솔에서 실행하기
  7. 2014.01.13 루아에서 변수의 종류

 

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

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

테이블

 

Ruby언어의 Hash, Python언어의 Dictionary, Java의 Map과 같은 자료형이다.

다만, 루아의 테이블은 복합 자료형이면서도 중요한 역활을 한다. key-value가 아닌 배열이나 객체 프로그래밍을 할 때 필요하기 때문이다. 


우선 테이블은 익명성이라는 특징을 가진다.

> cool_table = {}
> print(cool_table)
table: 0x8268920

 

테이블 그 자체의 출력 값은 테이블 요소 값의 관계로써 별 의미가 없다.

 

 

 

> cool_table["name"] = "짱구"
> cool_table["age"] = "다섯살"
> print(cool_table["name"].."는 몇십년째 "..cool_table["age"].."이야.")
짱구는 몇십년째 다섯살이야.

 

> print(cool_table)
table: 0x8268920

 

> print(cool_table["poo"])
nil


선언과 호출은 간단하다. 마치 key-value꼴로 쓴다. key에 들어갈 자료형은 무엇이든지 상관없다만 nil을 key로 쓸 수 없다.

후에 cool_table을 다시 print()로 찍어보았지만 요소와는 별 관계가 없음을 알 수 있다.

또한 없는 key를 호출할 경우 쓰레기값인 nil을 돌려받는다.

 

 

 

> cool_table = {["name"]="짱구", ["age"]="다섯살"}


테이블은 이렇게도 만들 수 있다.

전체적으로 {}로 감싸며 key는 []로 감싼 형태이다.

 

 

 

> cool_table = {}
> cool_table["age"] = "다섯살"
> cool_desk = {}
> cool_desk.age = "다섯살"

> =(cool_table == cool_desk)
false


만드는 방법이 다를 뿐, cool_table과 cool_desk는 서로 같은 key-value를 가진 테이블이지만

참조부분이 다르므로 결과적으로 false다.

 


 

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

조건문  (0) 2014.01.13
문자열 정리  (0) 2014.01.13
연산자.  (0) 2014.01.13
루아의 변수 선언과 규칙.  (0) 2014.01.13
루아스크립트 콘솔에서 실행하기  (0) 2014.01.13
Posted by JJOREG

문자열

 

> print("Hello!")
Hello!
> print('Hello!')
Hello!

> print([[Hello!]])

Hello!

> =[[동해물과 백두산이 마르고 닳도록
>> 하느님이 보우하사 우리나라만세
>> 무궁화 삼천리 화려강산
>> 대한사람 대한으로 길이보전하세.]]
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라만세
무궁화 삼천리 화려강산
대한사람 대한으로 길이보전하세.

 

큰 따옴표, 작은 따옴표, 중괄호로 감싸면 문자열이 된다.

긴 문자열은 [[로 시작해서 끝날 때 ]]로 닫는다.

 

 

 

> = 'I'm so happy to see you.'
stdin:1: '<eof>' expected near 'm'
> ="I'm so happy to see you."
I'm so happy to see you.
> =[[I'm so happy to see you.]]
I'm so happy to see you.

대신에 문자열로 쓴 기호가 문자열 내에 중복되서는 안된다.

 

 

 

> ="I Like..\nA\tP\tP\tL\tE"
I Like..
A    P    P    L    E

 

서식 문자열도 동일하게 쓸 수 있다.

 

 

 

> name = "철수"
> kim = "김"
> print(kim + name)
stdin:1: attempt to perform arithmetic on global 'kim' (a string value)
stack traceback:
    stdin:1: in main chunk
    [C]: ?

> print(kim..name)
김철수

> kcs = kim..name
> print(kcs)
김철수

 

문자열을 서로 합칠 때는 + 가 아닌 .. 를 사용한다.

문자열 + 정수의 경우에도 ..를 사용할 수 있다.

 

 

 

> ="What is it?"
What is it?
> = "It's "..type("What is it?").."."
It's string.

 

데이터 타입을 알아보기 위해서 type() 함수를 쓴다. 파이썬의 dir()과 같은 역활이다.

 

 

 

-- 제일 나쁘고 느림
local
s = '' for i=1,10000 do s = s .. math.random() .. ',' end io.stdout:write(s)

-- 빠름 for i=1,10000 do io.stdout:write(tostring(math.random()), ',') end -- 셋중에 제일 빠르지만 더 많은 메모리를 필요료함 local t = {} for i=1,10000 do t[i] = tostring(math.random()) end io.stdout:write(table.concat(t,','), ',')

물론 문자열도 불변의 데이터 배열이므로 생성과정에서 자원낭비가 발생할 수 있다.

세 코드중 첫번째 코드가 가장 나쁜 형태로써 제일 느리다.

 

해석을 덧붙이자면 math.random() 메서드로 임의의 정수를 뽑아 문자열 s와 ","로 결합하게 된다.

이것을 10000을 반복하게 되는데 첫번째는 별 생각없이 .. 를 썼다.

두번째의 경우 정수 데이터를 tostring()이란 함수를 이용해 문자열로 바꾼 후에 s와 ","를 결합했다.

 

아마 동적 언어의 특성상 서로 다른 자료형의 데이터 연산이 이루어질 때 '타입 검사'를 하는데 결국 10000번씩이나 타입검사를 시도하면서 성능을 저하 한다는 뜻인 것같다.

두번째 코드는 tostring()을 사용해줌으로써 동적인 '타입검사'를 과감히 pass시켜 정적(?)인 흉내를 내준 셈이다.

 

 

 

 

 


 

문자열 라이브러리

더 많은 라이브러리들은 이 문서를 참고하도록 하자. 여기서는 필자에게 필요한 것들만 정리한다.

 

바꾸기 - gsub()

> =string.gsub("안녕 철수야", "철수", "짱구")
안녕 짱구야    1

 

소문자 - lower()

> =string.lower("KUKUDAS")
kukudas

 

대문자 - upper()

> =string.upper("kukudas")
KUKUDAS

 

반복 - rep()

> =string.rep("Oh~ Yes!\n", 4)
Oh~ Yes!
Oh~ Yes!
Oh~ Yes!
Oh~ Yes!

 

뒤집기 - reverse()

> =string.reverse("kukudas")
sadukuk

조각썰기(슬라이징, 서브, 부분 추출) - sub()

> =string.sub("kukudas", 4)
udas
> =string.sub("kukudas", 0, 4)
kuku


매치(정규식) - match()

> =string.match("TikTak 234 Koko", "%d+ ")
234 
> return string.match("TikTak 234 Koko", "%a+")
TikTak
> return string.match("TikTak 234 Koko", "(%a+) %d+ (%a+)")
TikTak    Koko
> return string.match("TikTak 234 Koko", "(%a+)%d+(%a+)")
nil

아뿔사. 정규식 언어가 다르잖아.

 

포매팅 - format()

> =string.format("%s", "HAHA")
HAHA

 

길이 - len()

> =string.len("ABCDE")
5
> =string.len(123)
3

 

 

 

 

논리(불, 부울)

> =(1 == 1)
true
> =(2 == 1)
false
> a = "A"
> =(a == "A")
true

 

별 달리 중요한 함수는 없으니 연산자만 훌어보고 넘어가자.

 

 

 

 

 

테이블

Ruby언어의 Hash, Python언어의 Dictionary, Java의 Map과 같은 자료형이다.

다만, 루아의 테이블은 복합 자료형이면서도 중요한 역활을 한다. key-value가 아닌 배열이나 객체 프로그래밍을 할 때 필요하기 때문이다. 


우선 테이블은 익명성이라는 특징을 가진다.

> cool_table = {}
> print(cool_table)
table: 0x8268920

 

테이블 그 자체의 출력 값은 테이블 요소 값의 관계로써 별 의미가 없다.

 

 

 

> cool_table["name"] = "짱구"
> cool_table["age"] = "다섯살"
> print(cool_table["name"].."는 몇십년째 "..cool_table["age"].."이야.")
짱구는 몇십년째 다섯살이야.

 

> print(cool_table)
table: 0x8268920

 

> print(cool_table["poo"])
nil


선언과 호출은 간단하다. 마치 key-value꼴로 쓴다. key에 들어갈 자료형은 무엇이든지 상관없다만 nil을 key로 쓸 수 없다.

후에 cool_table을 다시 print()로 찍어보았지만 요소와는 별 관계가 없음을 알 수 있다.

또한 없는 key를 호출할 경우 쓰레기값인 nil을 돌려받는다.

 

 

 

> cool_table = {["name"]="짱구", ["age"]="다섯살"}


테이블은 이렇게도 만들 수 있다.

전체적으로 {}로 감싸며 key는 []로 감싼 형태이다.

 

 

 

> cool_table = {}
> cool_table["age"] = "다섯살"
> cool_desk = {}
> cool_desk.age = "다섯살"

> =(cool_table == cool_desk)
false


만드는 방법이 다를 뿐, cool_table과 cool_desk는 서로 같은 key-value를 가진 테이블이지만

참조부분이 다르므로 결과적으로 false다.

 

 

 

 

배열, 테이블과 같은

제곧내. 배열도 테이블이다. key-value형식이 아닌 우리가 흔히 하는 요소가 한줄로 좌라락 배치된 모습이다.

 

> array = {1, 2, 3, "A", "B", "C"}
> print(array)
table: 0x8269410

 

배열이 곧 테이블이니라~

 

 

 

> array = {1, 2, 3, "A", "B", "C"}

> =array[1]
1
> =array[2]
2
> =array[3]
3
> =array[4]
A
> =array[5]
B
> =array[6]
C


테이블로 흉내낸 배열의 첫번째 요소의 위치 값은 1이다.

사실 알고보면 key가 자동으로 생성되었다고 봐야한다. 아래 코드를 줄인 게 이 코드이다.

 

> array = {[1]=1, [2]=2, [3]=3, [4]="A", [5]="B", [6]="C"}

 

그냥 척 봐도 key 없이 쓰는 게 훨씬 편해보인다. 어쨌든 배열이라는 것은 결국 테이블이라는 것이다.

 

 

 

> array = {[1]=1, [2]=2, [3]=3, [4]="A", [5]="B", [6]="C"}
> =len(array)
stdin:1: attempt to call global 'len' (a nil value)
stack traceback:
    stdin:1: in main chunk
    [C]: ?

 

> =#(array)
6

 

> array[#array+1] = "a"
> =array[#array]
a

> =array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8]
1    2    3    A    B    C    a    nil

 

> =table.concat(array, ":")
1:2:3:A:B:C:a


테이블의 길이가 알고 싶다면 테이블 앞에 #을 쓰면 된다. len은 string에 속한 클래스다.

 

#연산자는 배열의 뒤 꽁무니에 요소를 첨가할 때 써도 좋다.

맨 마지막 array[8]은 존재하지 않는 요소이므로 nil이다.

 

concat를 통해 테이블을 하나의 문자열로 엮어낼 수 있다. 파이썬에 str.join() 같은 역활이다.

 


 

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

조건문  (0) 2014.01.13
테이블  (0) 2014.01.13
연산자.  (0) 2014.01.13
루아의 변수 선언과 규칙.  (0) 2014.01.13
루아스크립트 콘솔에서 실행하기  (0) 2014.01.13
Posted by JJOREG

연산자의 종류 ------------------------------------------------------------------------------------------------

 

연산지는 두 개의 값들로 어떤 연산을 수행할 때 사용하는 특별한 기호이다. 산술 연산지들은 산술 결과를 낳으며

관계 연산자는 bool 결괴{true 또는 false)를 낳는다.

 

산술연산자의 종류 ------------------------------------------------------------------------------------------------

• 덧셈예 a + b c
• 뺑셈. 예 a - b = c
• 곱셈. 예 a • b c
• 나늦셈. 예 a / b = c

 

[역주 버전 5.0.x 에는 나머지 연산자가 없는데,버전 51 에서는 정수 형식이 추가될 것이며,

그에 따라 (정수 지원 여부와 상관없이 개발자가 실수로 빼먹 었다는 이야기도 있지만)

정수 나누기의 나머지를 계산하는 나머지 연산자도 추기될 것이다 나머지 연산자의 기호는 %가될 것이 거의 확실하다

 

관계연산자의 종류 ------------------------------------------------------------------------------------------------

관계 연산자는 두 값의 상대적인 관계를 판정하는 연산자이 다. 다음은 루아가 지원히는
표준적인 관계 연산자들을 보여주는 예이다.
if a b then 상등
print("a 는 b 와 같다. ")
end
if a b then 부등
print("a 는 b 와 같지 않다. " )
end
if a < b then 미만
print("a 는 b 보다 작다 . ")
end
if a > b then 초과
print("a 는 b 보다 크다 . ")
end
if a <= b then -- 01하
print( " a 는 b 보다 작거나 같다 " )
end
if a >= b then -- 01상
print("a 는 b 보다 크거나 같다 " )
end


관계 연산자로 테이블들을 비교할 때에는 주의를 기울여야 한다. 테이블이 배정된 변수는 테이블을 실제로 담고 있는 것이 아니라 단지 테이블을 가리키는 것일 뿐이다

(C 의 포인터나 C++ 의 참조 변수와 비슷하다)

따라서 테이블 변수들을 비교하는 것이 실제로 테이블의 내용이 같은지를 비교하는 것은 아니다 다음 예를 보자

 

tableA = {1. 2 , 3}
tableB = {1 , 2 , 3}


if tableA == tableB then
    print(" 두 테이블이 같음. ")
else
    print(" 두 테이블이 같지 않응. ")
end

 

두 변수가 각자 다른 태이블(내용은 같더라도)을 가리키고 있기 때문에 “두 테이블이 같지 않음”이 출력된다


tableA = {1 , 2 , 3}
tableB = tableA
if tableA == tableB then
    print(" 두 테이블이 같음. ")
else
    print(" 두 테이블이 같지 않음. ")
end


그러나 이 두 번째 예제는 tabelB 가 tableA 와 같은 테이블을 가리키는 것이므로 “두 테이블이 같음”을출력한다, 한편, 테이블 안의 값들은 일반적인 방식으로 비교할수 있다

if tableA[2] == tableB[2] then
    print(" 두 값이 같음 ")
end


첫 번째 예제 이후에 이것을실행한다고하더라도두값이 같다는출력이 나온다

 

8) [역주 이 책에서는 다루지 않지만, 메타테이블(metatable) 이라는 것을 이용하면 테이블 변수 자체를 비교할 때에도 개별요소들을 비교하는 식으로 두 태이블의 상등을 판정하게 만들수 있다 루아의 메타테이블은 C++ 의 연산자 중복적재 메커니즘과바슷한것이다.

 

논리 연산자의 종류 ------------------------------------------------------------------------------------------------

 


논리 연산자는주어진두인수(피연산자)들에 대해논리합, 논리곱같은논리 연산을수행한다.
루아에서 논리 연산자들은 모두 소문자로 이루어져 있다.
논리곱을 뜻하는 and 연산지는 첫 번째 인수가 false 이면 첫 번째 인수의 값을 몰려주고,
그렇지 않으면 두 번째 인수의 값을돌려준다.

 

a = 5
b = 10
c = 20

if (a < 10) and (b < 20) then
    print( " 두 번째 인수의 값인 true 를 돌려준다 . ")
end

if (a > c) and (b < 20) then
     Print (" 첫 번째 인수의 값인 false 를 돌려준다 . ")
end

 

논리합을뭇하는 or 연산자는 and 의 반대이다. or 은 첫 번째 인수가 false 가아니면 첫번째 인수를 돌려주고, 그렇지 않으면 두 번째 인수를 돌려준다.


a = 5
b = 10
c = 20
if (a < 10) or (b < 20) then
     print ( " 첫 번째 인수의 값인 true 를 톨려준다 . ")
end
if (a > c) or (b < 20) then
     print(" 두 번째 인수의 값인 true 를 돌려준다 . ")
end
if (a > c) or (b < 5) then
     print(" 두 번째 인수의 값인 false 를 돌려준다. ")
end

 

부정을 못하는 not 연산자는 앞의 두 연산자들과 달리 항상 부울 값, 즉 true 아니면 false 를돌려준다 루아에서 

논리 연산자들이 false로 간주하는값은 false 와 nil 뿐이다.

그 외의 모든 값은 true 로 간주한다. not 연산자는 주어진 인수의 부울 값을 부정한 결과를 돌려준다.

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

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

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

식별자는영문자와숫자,

밑줄로구성되나,

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

그리고 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

dofile 명령은주어진루아스크립트파일을즉시 실행한다 명령의 매개변수는실행할
파일의 경로와이름이 다. 경로구분에는역슬래시 하나가아니라두개(\\)를사용해야
함을 주의할 것 이것은 다른 여러 언어와 마찬가지로 루아에서도 역슬래시 문자는 문
자열 안에서 어떤특별한문지{큰따옴표, 줄바꿈등)를표현하기 위해 쓰이기 때문이다.


dofile 을 이용하면 어떠한 스크립트라도 실행할 수 있다(스크립트가 C++ 로 작성된 특
별한 루이글루 함수를 시용하지 않는다고 할 때 1)). 스크립트 실행 도중 어떤 오류가 발생
하면 루아 환경은 해당 오류 메시지를 출력한다. 이는 스크립트를 디버깅할 때 매우 요
긴한기능이다.

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

테이블  (0) 2014.01.13
문자열 정리  (0) 2014.01.13
연산자.  (0) 2014.01.13
루아의 변수 선언과 규칙.  (0) 2014.01.13
루아에서 변수의 종류  (0) 2014.01.13
Posted by JJOREG

[루아에서의 변수 종류]

NIL              NULL과 같은 의미 (0이 아닌 아무것도 없는 값) 

                   PRINT(A)

 

BOOLEAN    TRUE, FALSE 값 만을 가진 논리 변수

         A = TRUE

         PRINT(TYPE(A))

 

NUMBER     숫자 

        A = 1 

                  PRINT(TYPE(A))


STRING       문자 

        A=HI

        PRINT(TYPE(A))

 

FUCTION     함수

        PRINT(TYPE(PRINT))

 

TABLE        테이블

        A = {1,2,3} / PRINT(TYPE(A))

 

THREAD     스레드,코루틴 프로그램에서 동시에 어떤 일을 수행시킬 때 사용 

                 CR - COROUTINE.CREATE(FUNTION()PRINT("HELLO")END)

                 PRINT(TYPE(CR))


USERDATA  사용자 데이터. 이건 우선 생략


LOCAL       지역변수. 특정 블록 내에서만 유효한 변수를 뜻함 루아는 기본적으로 전역변수다.

       LOCAL NCOUNT = 0

[출처] 2차 : 변수와 Type|작성자 츄츄양


 

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

테이블  (0) 2014.01.13
문자열 정리  (0) 2014.01.13
연산자.  (0) 2014.01.13
루아의 변수 선언과 규칙.  (0) 2014.01.13
루아스크립트 콘솔에서 실행하기  (0) 2014.01.13
Posted by JJOREG
이전버튼 1 이전버튼