local 키워드를 사용하면 해당 영역에서만 유효하게 만들 수 있다.
- Java처럼 매번 타입을 선언할 필요는 없다.
- 다만 타입이 있기는 하다.
nil: 빈 값. (null과 비슷)
boolean
number
string
function
- `table: 여러 변수들의 그룹. 클래스처럼 활용할 수 있다.
- 수식 연산자:
+, -, *, /, %, ^
- 관계 연산자:
==, ~=, >, <, >=, <=
- 논리 연산자:
and, or, not
..: 두 문장을 붙여준다. ex) "hi".."!!"
#: 배열/테이블의 개수 카운트
- 아쉽게도
++, --과 같은 연산자는 없다.
local array = {"hi", "hello", "bye"}
print(#array)
- 아래는 1부터 시작해서 30이 될 때까지 1을 더하는 것이다.
for i = 1, 30, 1
do
~~~
end
repeat
~~~
a = a + 1
until(a > 30)
if (a and b)
then
~~~
else
~~~
end
- 함수에
local을 붙이지 않으면 글로벌 함수가 된다.
local function add(a, b)
return a + b
end
- 변수에 함수를 할당할 수 있으며, 콜백 함수를 사용할 수 있다.
myPrinter = function(target)
print("--", target, "--")
end
function add(a, b, printer)
result = a + b
printer(result)
return result
end
add(10, 15, myPrinter)
- 다른 언어와 다르게 첫번째 인덱스 값이
1이다.
- lua의 유일한 자료구조
- 클래스처럼 사용하기도, 배열로 사용하기도 한다.
- Table 안의
index, key index 무관하게 전체를 보여준다.
for key, value in pairs(table) do
~~~
end
for key, value in ipairs(table) do
~~~
end