2014. 3. 6. 19:31
Study/Lua
루아는 C 또는 파스칼과 거의 비슷한 형태인 문장 구조를 제공.
1. 배정
1) 배정문은 변수 또는 테이블 필드에 값을 변경하는 기본적 방법
a = "hello" .. "world" -> 이건 a = "hello" + "world" 같은 느낌으로 문자열 결합
t.n = t.n + 1
2) 다중 배정
a, b = 10 2*x
a = 10
b = 2* x
와 같은 의미
값의 swap, 함수가 다수의 값을 한번에 리턴할 때 그 값을 받기 위해 유용
3) 배정 시 값의 개수와 변수 개수를 맞추므로 변수에 비해 값이 적으면 나머지는 nil로 초기화 반대의 경우 나머지는 짤린다.
2. 지역 변수와 블록
1) 루아에서 변수 선언 시 기본적으로 '전역' 이다. ex> x = 1 -> 전역
2) 지역 변수를 선언하기 위해서는 local 키워드를 앞에 붙여야 한다. ex> local y = 2 -> 로컬
특이하게도 블록안에 있어도 키워드를 적용하지 않으면 선언 위치에 상관 없이 무조건 전역이 되는 모양임.
3) 블록은 C의 {}, 파스칼의 begin end 같은 거임!
3. 제어구조
1) if then else 문
if a < 0 then
a = 0
end
if a < b then
return a
else
return b
end
2) elseif 문 : swich 문이 없으므로 연속 비교문으로 사용 if와 달리 end를 매번 넣을 필요가 없음
if op == "+" then
r = a + b
elseif op == "-" then
r = a - b
elseif op == "*" then
r = a * b
elseif op == "/" then
r = a / b
end
3) while 문
타 언어와 같음
4) repeat 문
repat
작업
until 조건
타 언어와는 달리 반복문 안에 선언된 지역변수의 유효 범위가 조건문도 포함되므로 지역변수를 조건문의 구성에 넣어도 문제 없음
5) 수치 for 문
for 제어변수 = 시작값, 목표값, 증가치 do
작업
end
위에서 제어변수는 절대로 작업영역에서 변경하면 안된다.
6) 일반 for문 (느낌상으로는 반복자가 존재하는 컨테이너에 대해 루프를 돌리는 foreach 같은 느낌..)
for 색인 저장 변수, 색인에 맞는 값 저장 변수 in 반복자 함수 do
작업
end
7) break 와 return
블록에서 빠져나갈 때 씀
모든 함수는 암시적으로 return 문이 적용되어 있으며 값을 반환하지 않는 함수 끝에 명시적으로 return을 사용할 필요가 없다.
'Study > Lua' 카테고리의 다른 글
[Lua] 학습 자료 모음 (0) | 2014.03.20 |
---|---|
[Lua] 수식 (0) | 2014.03.06 |
[Lua] 자료형과 값 (0) | 2014.03.06 |
[Lua] Begin... (0) | 2014.03.06 |