루아 변수
변수를 사용하기 전에 코드에서 변수를 선언해야 합니다. 즉, 변수를 생성해야 합니다.
컴파일러가 코드를 실행하기 전에 컴파일러는 변수의 값을 저장하기 위해 명령문 변수에 대한 저장 영역을 여는 방법을 알아야 합니다.
Lua 변수에는 전역 변수, 지역 변수, 테이블 필드의 세 가지 유형이 있습니다.
Local을 사용하여 명시적으로 지역 변수로 선언하지 않는 한 Lua의 모든 변수는 명령문 블록이나 함수에서도 전역 변수입니다.
지역 변수의 범위는 선언 위치부터 명령문 블록 끝까지입니다.
변수의 기본값은 nil입니다.
-- 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
Assignment 문
Assignment는 변수의 값을 변경하고 변경하는 가장 기본적인 방법입니다. 테이블 필드.
a = "hello" .. "world" t.n = t.n + 1Lua는 동시에 여러 변수에 값을 할당할 수 있습니다. 변수 목록과 값 목록의 각 요소는 할당문의 오른쪽에 있는 값이 왼쪽에 있는 변수에 할당됩니다. 차례로.
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()는 두 개의 값을 반환합니다. 첫 번째 값은 a에 할당되고 두 번째 값은 할당됩니다. 줘 b.
가능한 한 로컬 변수를 사용해야 합니다. 두 가지 이점이 있습니다.
1.
2. 지역 변수에 대한 액세스가 전역 변수보다 빠릅니다.
인덱스
테이블 인덱스에는 대괄호 []를 사용하세요. Lua는 또한 .
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