블로그 이미지
LanSaid

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Recent Post

Recent Comment

Recent Trackback

Archive

2014. 3. 6. 16:57 Study/Lua
* 루아는 동적 타입 지정 언어. -> 언어 안에 별도의 데이터 타입을 지정하는 정의가 없음을 뜻한다.
C/C++ 같은 것은 정적 타입 지정언어로 변수 선언 시 타입을 결정해야 하며 런타임에 타입을 변경할 수 없다.


* 기본 데이터 타입
1. nil 닐
 다른 타입과 다르다는 것을 나타내는 목적(property)으로 사용.
 유용한 값이 없음을 나타내기 위해, 정상 값이 아니라는 뜻.
 nil 이 들어있는 변수는 아무것도 기록되지 않은 하얀 백지 같은 것!

2. boolean 부울형
 거짓 :  false, nil
 참 : 위 사항을 제외한 나머지 전부.  특이 사항으로 0과 빈 문자열(" ")을 참으로 간주

3. number 수치
 배정도 부동소수점을 기본으로 하되 필요에 따라서 재 컴파일을 통해 정수형(long) 혹은 단정도 부동소수점(float)으로
 쉽게 변경 가능.

4. string 문자열
 '문자의 배열'이라는 통상적 의미. 8비트
 문자열에 이진데이터 표현 가능
 한번 생성된 문자열은 변경 불가능한 값이므로 변경을 하더라도 실제로는 변경된 내용으로 새로이 메모리에 등록 된다. -> 상수화?
 가비지컬렉터가 알아서 메모리를 회수하므로 선언 후 삭제를 신경 쓸필요 없다.
 문자열은 ' 혹은 " 로 앞뒤로 감싸면 된다. 아니면 \' 나 \" 로도 된다.

5. userdata 사용자 데이터
 타 언어에서 사용하는 데이터를 루아 변수에 저장하기 위해 만들어짐
 

6. function 함수
 함수를 변수에 넣을수도, 함수 인자로 던져줄 수도, 함수 반환값으로도 사용할 수 있다. 말 그대로 '값'인 모양이다.
 위 사항은 루아에 융통성을 제공한다.

7. thread 스레드

8. table 테이블
 연관 배열(nil을 제외한 모든 수치, 문자열 등을 색인(인덱스)로 사용할 수 있는 배열을 뜻함)을 구현한 기능.
 길이가 고정되어 있지 않음.
 사실상 루아의 유일한 자료구조 체계.
 테이블을 사용하여 모듈, 패키지, 객체를 표현.
 값이나 변수가 아닌 객체 -> 자바의 배열과 비슷
 a.x  와 a[x]는 다르다. a.x 는 a["x"] 와 같다. 
 루아의 배열은 1부터 시작한다. (0부터 시작하는 c와는 다름!!!!!)
 루아는 배열길이의 끝을 판단할때 nil 을 표식으로 한다. 그러므로 배열 중간에 nil이 있으면 길이 연산자 적용을 피해야 한다.
 
 

* 변수에는 미리 정의된 타입이 없음 -> 모든 변수는 모든 타입의 값을 담을 수 있다.   var 같은 느낌~

'Study > Lua' 카테고리의 다른 글

[Lua] 학습 자료 모음  (0) 2014.03.20
[Lua] 문장  (0) 2014.03.06
[Lua] 수식  (0) 2014.03.06
[Lua] Begin...  (0) 2014.03.06
posted by LanSaid