GaGe

Lua_Study(4장) 본문

Study/Lua

Lua_Study(4장)

Sorrel 2022. 7. 11. 11:29

할당문

1. 다중 할당문 지원

a, b = 10, 2*x
-- a == 10, b == 2*x

ex)
x, y = y, x -- x와 y 값을 swap


-- 대입할 값의 개수와 값을 대입할 변수의 개수가 맞지 않을 경우 맞춰준다.
a, b, c = 0, 1           -- a==0, b==1, c==nil
a, b = a+1, b+1, c+1     -- a==a+1, b==b+1, c+1의 값은 무시됨

2. 지역 변수와 전역 변수

j = 10         -- 전역 변수
local i = 1    -- 지역 변수

local 지역변수는 선언된 스코프 안에서만 쓰임

do end 문으로 지역변수의 스코프를 좁게 조절할 필요가 있을 때 쓰인다.

do
  local a2 = 2*a
  local a3 = 1
  ...
 end    -- a2와 a3는 여기서 사용이 끝

가능한 한 지역 변수를 사용하도록 해서 깨끗한 코드를 유지해야 한다.

3. repeat

repeat-until문은 조건이 참일 때까지 몸체를 반복해서 실행한다. (그래서 한번은 꼭 실행된다) do-while과 반대

repeat
  line  = io.read()
 until line ~=""
 print(line)

4. for

수치 for문

for var = exp1, exp2, exp3 do
 <something>
end
--var 값을 exp1부터 exp2까지 exp3만큼 증가시키면서 something 실행

for i=1, math.huge do
 <something>
end
-- 상한 없이 반복 --> 무조건 break 값을 써줘야 무한반복이 되지 않는다.

일반 for문

for k, v in pairs(t) do print(k,v) end
-- 테이블 t의모든 값을 출력
-- k에는 키가, v에는 값이 들어간다.

5. return

function foo()
 return   -- 오류
 do return end   -- 오류 아님
 <something>
end

6. goto

goto의 바람직한 사용은 continue나 다단계 break, 지역오류 처리 등을 루아에서 흉내내기 위해 쓰는 경우다.

while <조건> do
 ::redo::
 if <조건> then goto continue
 else if <조건> then goto redo
 end
 <something>
 ::continue::
end

 

 

 

'Study > Lua' 카테고리의 다른 글

Lua_Study(dofile vs loadfile vs load)  (0) 2022.07.12
Lua_Study(pairs와 ipairs의 차이점)  (0) 2022.07.12
Lua_Study(6장)  (0) 2022.07.11
Lua_Study(5장)  (0) 2022.07.11
LUA_study(1~3장)  (0) 2022.07.11
Comments