2.Lua의 변수
2024. 1. 29. 13:15ㆍ개발공부/LUA
변수
변수는 루아에 있는 저장 영역에 부여된 이름일 뿐입니다.
함수와 테이블을 포함하여 다양한 유형의 값을 가질 수 있습니다.
변수 이름은 문자, 숫자, 밑줄 문자로 구성될 수 있습니다. 문자나 밑줄로 시작해야 합니다.
Lua는 대소문자를 구분하므로 대문자와 소문자는 구별됩니다.
Lua에는 8가지 기본 유형의 값이 있습니다.
Lua에는 변수 데이터 유형이 없지만 변수 범위에 따라 세 가지 유형이 있습니다.
변수의 3가지 유형
■ 전역변수: 명시적으로 지정하지 않는 한 모든 변수는 전역으로 간주됩니다.
■ 로컬변수: 유형이 변수에 대해 로컬로 지정되면 그 범위는 범위 내의 기능으로 제한됩니다.
■ 테이블 필드: 함수와 0을 제외한 모든 것을 담을 수 있는 특별한 유형의 변수입니다
local d , f = 5 ,10 --declaration of d and f as local variables.
d , f = 5, 10; --declaration of d and f as global variables.
자료형 8가지 유형
- nil : 아무것도 아닌 텅빈 값을 의미함. (일반적으로 변수를 초기화 할 때 사용)
C/C++ 에서의 null과는 다르다 . C/C++에서 null은 정수 0을 의미하지만, Lua에서는 말그대로 아무것도 아닌 것 - boolean : false 와 true 두 값을 가진다.
Lua에서는 boolean 타입 값 뿐만 아니라 다른 값으로도 참, 거짓을 나타낼 수 있다.
조건문에서 nil 값도 false로 판별하고, 그 외의 모든 값은 true로 판별한다.
0과 빈 문자열도 true로 판별하니 주의하자 - number : 0 , 3.141592 등과 같은 사직연산이 가능한 모든 숫자값을 의미 (기본적으로 64비트)
Lua는 정수와 실수를 구분하지 않는다. - string : 말그대로 문자열이다. Lua의 기본타입이며 , 스크립트상에서는 " 으로 둘러싸 지정하게 된다.
예로 "1234" , "HelloWorld"
루아에서는 문자열을 수정할 수 없다. - function : Lua에서는 함수도 하나의 값으로 취급한다. 즉 fuction으로 선언되면 실행되지만 , fucntion 타입의 변수에 대입도 가능하다.(table과 같이하여 사용하면 매우 유용함)
즉 . 함수를 변수에 저장 , 다른 함수의 인자로 넘겨주기 , 함수를 return 받기 등이 가능하다. - userdata : C/C++ 과의 교류를 위해 존재하는 타입이다. page내에서는 핸들이라고 지정하는 것들이 바로 이 타입이다. 스크립트를 작성할때 직접 값을 제어할 경우는 드물고, 보통 엔진에서 제공되는 함수를 통해 설정하거나 변경 해제하게된다.
userdata에는 두 종류가 있는데, full userdata는 Lua 에서 관리하는 메모리 블럭을 가진 객체이고, light userdata는 그냥 C 포인터 값이다. - thread : 독립적인 실행 스레드를 나타내며 코루틴을 구현하는데 쓴다. Lua 스레드는 운영체제 스레드와는 무관하다.
Lua 는 자체 스레드를 지원하지 않는 경우를 포함하여 모든 시스템에서 코루틴을 지원함. - table : 테이블은 Lua에서 유일한 데이터 구조화 장치다. 테이블을 이용해 평범한 배열이나 리스트, 심볼 테이블, 집합, 레코드, 그래프, 트리 등을 표현할 수 있다. Lua 에서 레코드를 표현할 때는 필드 이름을 인덱스로 사용한다
Lvalues and Rvalues in Lua
Lvalue : 메모리 위치를 참조하는 표현식을 Lvalue라고 한다.
Rvalue :메모리의 일부 주소에 저장되어 있는 데이터 값을 rvalue라고한다.
g = 20
여기서 Lvalue 는 g 이고 Rvalue 는 20 이다.
g,l = 20,30
Lua 프로그래밍 언어에서는 위의 할당 유형과는 별도로 동일한 단일 명령문에 여러 개의 lvalue와 rvalue를 가질 수 있습니다. g에 20이 할당되고 l에 30이 할당됩니다.
10 = 20
위 명령문은 빌드타임 오류가 발생한다.(rvalue를 lvalue로 사용한 경우)
g = l
위 명령문은 잘 작동한다.( lvalue 를 rvalue 로 사용한 경우)
참조링크
'개발공부 > LUA' 카테고리의 다른 글
6.Lua 의 조건문 (0) | 2024.01.29 |
---|---|
4.Lua의 반복문 (0) | 2024.01.29 |
3.Lua 의 연산자 (0) | 2024.01.29 |
1.LUA 의 기본 구문 (1) | 2024.01.29 |
[루아 스크립트] LUA 란? (0) | 2024.01.29 |