블로그 이미지
LanSaid

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Recent Post

Recent Comment

Recent Trackback

Archive

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
posted by LanSaid