Latest web development tutorials

루아 변수

사용하기 전에 변수는 변수를 생성 한 코드에 선언해야합니다.

컴파일러 코드 컴파일러를 수행하기 전에 변수의 값을 저장하는 문장 변화 메모리 영역을 개방하는 방법을 알 필요가있다.

전역 변수, 지역 변수, 테이블 필드 : 루아 변수는 세 가지 유형이 있습니다.

지역과 루아의 모든 글로벌 변수의 변수 또는 함수의 문조차 블록은 명시 적으로 지역 변수로 선언하지 않는 한.

로컬 변수의 범위는 위치로부터 시작되는 위치를 문 블록의 끝.

변수의 초기 값은 전무하다.

-- test.lua 文件脚本
a = 5               -- 全局变量
local b = 5         -- 局部变量

function joke()
    c = 5           -- 全局变量
    local d = 6     -- 局部变量
end

joke()
print(c,d)          --> 5 nil

do 
    local a = 6     -- 局部变量
    b = 6           -- 全局变量
    print(a,b);     --> 6 6
end

print(a,b)      --> 5 6

위의 예제 출력이 수행

$ lua test.lua 
5	nil
6	6
5	6

할당

할당은 변수의 값을 변경하고 기본적인 방법 테이블 필드를 변경한다.

a = "hello" .. "world"
t.n = t.n + 1
루아 동시에 여러 변수를 할당 할 수있는 변수 목록 쉼표로 구분되어 각 요소의 값의리스트는 좌측의 변수에 할당 차례로 입문의 우측의 값.
a, b = 10, 2*x       <-->       a=10; b=2*x

루아 할당 먼저 오른쪽으로 모든 값을 계산하고 과제를 수행하고 있으므로,이 변수의 값을 교환 할 수있는 것 발견 하였다 :

x, y = y, x                     -- swap 'x' for 'y'
a[i], a[j] = a[j], a[i]         -- swap 'a[i]' for 'a[j]'

변수 값의 수의 수가 일치하지 않는 경우, Lua는 변수의 수는 다음의 전략에 기초하여 촬영 한 것이다 :

a. 变量个数 > 值的个数             按变量个数补足nil
b. 变量个数 < 值的个数             多余的值会被忽略

예를 들면 :

a, b, c = 0, 1
print(a,b,c)             --> 0   1   nil
 
a, b = a+1, b+1, b+2     -- value of b+2 is ignored
print(a,b)               --> 1   2
 
a, b, c = 0
print(a,b,c)             --> 0   nil   nil

마지막 예는 위의 일반적인 오류 조건 주 : 여러 변수가 순차적으로 각각의 변수에 할당해야합니다 지정합니다.

a, b, c = 0, 0, 0
print(a,b,c)             --> 0   0   0

종종 변수 값 지정 또는 변수에 반환하는 함수 호출을 교환하는 데 사용 :

a, b = f()

F ()는 제 B가 할당되고, 제 하나가 할당되고, 두 값을 반환한다.

지역 변수를 사용할 수있을 경우, 두 가지 장점이 있습니다 :

  • 1. 이름 충돌을 피하십시오.
  • 전역 변수보다 빠르게 2. 지역 변수.

색인

대괄호 []를 사용하여 테이블의 인덱스입니다. 루아는 또한 운영을 제공한다.

t[i]
t.i                 -- 当索引为字符串类型时的一种简化写法
gettable_event(t,i) -- 采用索引访问本质上是一个类似这样的函数调用

예를 들면 :

> site = {}
> site["key"] = "www.w3cschool.cc"
> print(site["key"])
www.w3cschool.cc
> print(site.key)
www.w3cschool.cc