2. Types and Values [ 종류들과 값들 ] 루아 / 공부
제일 주요 내용만 적어보자면
-------------------------------------------------
1. Nil (無)
루아에선 "없는-값"이라고 사용됨,
주요 속성이 다른 값들과 다름. 전역 변수는 기본적으로 nil 값을 가지고 있음.
2.Booleans ( 불방식 )
두 가지 값으로 나뉨, false 와 true. 전통적인 불 값임.
아무 값이나 상태를 나타낼 수 있음
<- 변수 a 는 할당되지 않았으므로 nil 값이 들어가 있음. 그러므로 false.
false 값은 false 그 차체 또는 nil 값만 해당되고
true 값은 값이 할당된 모든 것에 해당됨.
※ 루아에선 0, 빈 문자열 (a = "" )을 참으로 구분함.
3. Numbers ( 숫자 )
루아에선 정수 타입이 없음.
책에선, 널리 퍼진 부동소수점에 대한 오해에 관한 내용이 적혀있음. 생략~
4. Strings ( 문자열 )
너무 많다! 생략하고 싶지만 중요한 것들과 알아두면 좋은 게 있기에 다 쓴다..
5. Tables ( 테이블 )
으악 제발! 왜 이리 많냐!
2018. 5. 5. 21:01
이번과는 루아에 있는 기본적인 8가지의 값 종류들을 설명하는 과이다.
종류들은 밑의 표와 같다.
값의 종류
| |||||||||||||||||
명칭
|
nil
|
boolean
|
number
|
string
|
userdata
|
function
|
thread
|
table
|
제일 주요 내용만 적어보자면
- type 함수를 사용하여 변수의 값 종류를 알 수 있다.
- 변수는 사전 정의된 값이 없다, 아무 변수나 아무 종류의 값을 가질 수 있다.
- "함수"는 루아에선 1등급 값(First-Class value)이다. 그러므로 어느 아무 값들처럼, 다룰 수 있다.
-------------------------------------------------
1. Nil (無)
루아에선 "없는-값"이라고 사용됨,
주요 속성이 다른 값들과 다름. 전역 변수는 기본적으로 nil 값을 가지고 있음.
2.Booleans ( 불방식 )
두 가지 값으로 나뉨, false 와 true. 전통적인 불 값임.
아무 값이나 상태를 나타낼 수 있음
<- 변수 a 는 할당되지 않았으므로 nil 값이 들어가 있음. 그러므로 false.
false 값은 false 그 차체 또는 nil 값만 해당되고
true 값은 값이 할당된 모든 것에 해당됨.
※ 루아에선 0, 빈 문자열 (a = "" )을 참으로 구분함.
3. Numbers ( 숫자 )
루아에선 정수 타입이 없음.
책에선, 널리 퍼진 부동소수점에 대한 오해에 관한 내용이 적혀있음. 생략~
4. Strings ( 문자열 )
너무 많다! 생략하고 싶지만 중요한 것들과 알아두면 좋은 게 있기에 다 쓴다..
- 루아에선 문자들의 배열을 "문자열"이라고 함.
- 루아에선 문자열은 변경할 수 없는 값임. 변경하기 위해선 새로운 문자열을 만들어야 함.
- 문자열은 자동 메모리 관리가 적용된다.
- 따옴표, 큰따옴표로 리터럴 문자열의 범위를 지정할 수 있다.
- 루아도 C 언어와 같은 이스케이프 시퀀스를 지원함.
- 이스케이프 시퀀스와 숫자를 입력하면 문자를 명시할 수 있다.
- [[ print("\97") --> 문자 "a" 가 출력됨 ( ASCII 코드에선 97이 알파벳 a를 나타낸다! )
- 대괄호 두 개를 붙여서 문자열의 범위를 지정할 수 있다.
- 루아는 실행 시에 숫자들과 문자열을 자동으로 변환해주는 기능이 있다.
- [[ print("10" +1) --> 11 / print("10 + 1") --> 10 + 1 / print("10"*"2") --> 20
- 반대로, 문자가 예상되는 숫자는 자동으로 수에서 문자로 바꿔준다.
- 숫자를 문자 형태로 변환시키고 싶으면, tostring() 함수를 이용하거나, 숫자에 빈 문자열을 붙히면 된다.
- 문자의 길이를 알고 싶다면, 우물정자인 #을 이용하면 된다 ( a="abc"; print(#a) --> 3 )
5. Tables ( 테이블 )
으악 제발! 왜 이리 많냐!
- 테이블은 배열의 연상적 배열을 구현함. 배열은 꼭 숫자만으로 인덱스 되지 않아도 됨.
- 인덱스할 때 숫자 말고도 문자열로도 가능. ( a[1]=3; a["foo"] = 1 )
- 테이블은 지정된 사이즈가 없음.
- 루아에서의 테이블은 유일한 데이터 구조화 메커니즘임
- 루아에서의 테이블은 값도 아니고 변수도 아님, 오브젝트임.
- 테이블은 정의할 방법이 없으나, 컨스트럭터 표현을 이용하여 생성할 순 있음. ( {} )
- 테이블은 항상 익명 적임, 테이블을 지닌 변수와 고정된 관계가 없음.
- 프로그램이 테이블과 관계가 없을 때, 루아의 가비지 컬렉터가 궁극적으로 테이블을 삭제하고, 그 부분의 메모리를 재 사용한다.
- 전역변수와 유사하게, 테이블 영역이 초기화되지 않았다면, nil 값을 나타낸다.
- 이외 16쪽은 테이블의 길이와 관련된 설명..
6 Functions ( 함수 )
루아에서의 함수는 일등급 값이다. 이 뜻은 함수들은 변수 안에 저장될 수도 있고 다른 함수에 인수로 주어질 수도 있고,
결과로 반환될 수 있다.
이 기능들은 언어에 매우 융통성 있게 해준다.
이외 내용은 다른 챕터에서 자세히 설명하겠다는 내용..
7. Userdata and Threads ( 유저 데이터와 쓰래드 )
유저 데이터는 임의적인 C 데이터를 루아 변수에 저장될 수 있게 해준다. 이건 사전 정의된 연산자가 루아에선 없다.
이 부분도 다른 과에서 설명하겠다고 써져 있다.
이걸로 2과 끝. 짝짝짝
----------------------------------------------
03. 루아의 Types and Values [ 종류들과 값들 ]
Reviewed by kukanuc
on
1월 23, 2019
Rating:
댓글 없음: