03. 루아의 Types and Values [ 종류들과 값들 ]

2. Types and Values [ 종류들과 값들 ] 루아 / 공부
2018. 5. 5. 21:01

번역하기 전용뷰어 보기



번과는 루아에 있는 기본적인 8가지의 값 종류들을 설명하는 과이다.

종류들은 밑의 표와 같다.

값의 종류
 명칭
nil 
boolean 
number 
string 
userdata 
function 
thread 
table 


제일 주요 내용만 적어보자면
  1. type 함수를 사용하여 변수의 값 종류를 알 수 있다.
  2. 변수는 사전 정의된 값이 없다, 아무 변수나 아무 종류의 값을 가질 수 있다.
  3. "함수"는 루아에선 1등급 값(First-Class value)이다. 그러므로 어느 아무 값들처럼, 다룰 수 있다.
이제 값 종류에 대한 설명.
-------------------------------------------------
1. Nil ()
루아에선 "없는-값"이라고 사용됨,
주요 속성이 다른 값들과 다름. 전역 변수는 기본적으로 nil 값을 가지고 있음.


2.Booleans ( 불방식 )
두 가지 값으로 나뉨, falsetrue. 전통적인 불 값임.
아무 값이나 상태를 나타낼 수 있음 
 <- 변수 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 [ 종류들과 값들 ] 03. 루아의 Types and Values [ 종류들과 값들 ] Reviewed by kukanuc on 1월 23, 2019 Rating: 5

댓글 없음:

Powered by Blogger.