루아 변수
사용하기 전에 변수는 변수를 생성 한 코드에 선언해야합니다.
컴파일러 코드 컴파일러를 수행하기 전에 변수의 값을 저장하는 문장 변화 메모리 영역을 개방하는 방법을 알 필요가있다.
전역 변수, 지역 변수, 테이블 필드 : 루아 변수는 세 가지 유형이 있습니다.
지역과 루아의 모든 글로벌 변수의 변수 또는 함수의 문조차 블록은 명시 적으로 지역 변수로 선언하지 않는 한.
로컬 변수의 범위는 위치로부터 시작되는 위치를 문 블록의 끝.
변수의 초기 값은 전무하다.
-- 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