Lua-변수

변수는 프로그램이 조작 할 수있는 저장 영역에 주어진 이름 일뿐입니다. 함수 및 테이블을 포함하여 다양한 유형의 값을 보유 할 수 있습니다.

변수 이름은 문자, 숫자 및 밑줄 문자로 구성 될 수 있습니다. 문자 또는 밑줄로 시작해야합니다. Lua는 대소 문자를 구분하므로 대문자와 소문자는 구별됩니다. Lua에는 8 가지 기본 유형의 값이 있습니다.

Lua에서는 변수 데이터 유형이 없지만 변수 범위에 따라 세 가지 유형이 있습니다.

  • Global variables − 모든 변수는 명시 적으로 로컬로 선언되지 않는 한 전역으로 간주됩니다.

  • Local variables − 유형이 변수에 대해 지역으로 지정되면 범위는 범위 내의 함수로 제한됩니다.

  • Table fields − 이것은 함수를 포함하여 nil을 제외한 모든 것을 담을 수있는 특별한 유형의 변수입니다.

Lua의 변수 정의

변수 정의는 인터프리터에게 변수 저장 공간을 생성 할 위치와 양을 알려주는 것을 의미합니다. 변수 정의는 선택적 유형을 가지며 다음과 같이 해당 유형의 하나 이상의 변수 목록을 포함합니다.

type variable_list;

여기, type 선택적으로 로컬이거나 유형이 지정되어 전역으로 설정됩니다. variable_list쉼표로 구분 된 하나 이상의 식별자 이름으로 구성 될 수 있습니다. 몇 가지 유효한 선언이 여기에 표시됩니다.

local    i, j
local    i
local    a,c

라인 local i, j둘 다 변수 i와 j를 선언하고 정의합니다. 이것은 인터프리터에게 i, j라는 변수를 생성하도록 지시하고 범위를 로컬로 제한합니다.

변수는 선언에서 초기화 (초기 값 할당) 할 수 있습니다. 이니셜 라이저는 다음과 같이 등호와 상수 표현식으로 구성됩니다.

type variable_list = value_list;

몇 가지 예는-

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. 
d, f = 10               --[[declaration of d and f as global variables. 
                           Here value of f is nil --]]

이니셜 라이저가없는 정의의 경우 : 정적 저장 기간이있는 변수는 암시 적으로 nil로 초기화됩니다.

Lua의 변수 선언

위의 예에서 볼 수 있듯이 배수 변수에 대한 할당은 variable_list 및 value_list 형식을 따릅니다. 위의 예에서local d, f = 5,10 variable_list에 d와 f가 있고 값 목록에 5와 10이 있습니다.

Lua에서 할당되는 값은 variable_list의 첫 번째 변수와 같이 발생하며 value_list의 첫 번째 값이있는 식입니다. 따라서 d의 값은 5이고 f의 값은 10입니다.

변수가 맨 위에 선언되었지만 기본 함수 내에서 정의되고 초기화 된 다음 예제를 시도해보십시오.

-- Variable definition:
local a, b

-- Initialization
a = 10
b = 30

print("value of a:", a)

print("value of b:", b)

-- Swapping of variables
b, a = a, b

print("value of a:", a)

print("value of b:", b)

f = 70.0/3.0
print("value of f", f)

위의 코드가 빌드되고 실행되면 다음 결과가 생성됩니다.

value of a:	10
value of b:	30
value of a:	30
value of b:	10
value of f	23.333333333333

Lua의 Lvalue와 Rvalue

루아에는 두 종류의 표현이 있습니다.

  • lvalue− 메모리 위치를 참조하는 표현식을 "lvalue"표현식이라고합니다. lvalue는 할당의 왼쪽 또는 오른쪽으로 나타날 수 있습니다.

  • rvalue− rvalue라는 용어는 메모리의 일부 주소에 저장된 데이터 값을 의미합니다. rvalue는 할당 된 값을 가질 수없는 표현식입니다. 이는 rvalue가 할당의 왼쪽이 아니라 오른쪽에 나타날 수 있음을 의미합니다.

변수는 lvalue이므로 할당의 왼쪽에 나타날 수 있습니다. 숫자 리터럴은 rvalue이므로 할당되지 않고 왼쪽에 나타날 수 없습니다. 다음은 유효한 진술입니다-

g = 20

그러나 다음은 유효한 문이 아니며 빌드 시간 오류가 발생합니다.

10 = 20

Lua 프로그래밍 언어에서는 위의 할당 유형을 제외하고 동일한 단일 명령문에 여러 lvalue와 rvalue를 가질 수 있습니다. 아래와 같습니다.

g,l = 20,30

위의 설명에서 20은 g에 할당되고 30은 l에 할당됩니다.