블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

Lua 04. 문자열

LUA / 2012. 3. 5. 10:34

1. 문자를 숫자로,  숫자를 문자로

 - 우린 c 에서  atoi 등의 함수를 사용함에 있어 문자와 숫자를 자유로이 변환할 수 있었다..

 - 루아 역시 이러한 기능이 제공된다.

 

문자에서 숫자 :  tonumber()

숫자에서 문자 :  tostring()

 

 

2. string.char 함수,  linefeed (줄넘김, 개행)

 - string.char(n1, n2, ... )

 - if ( str == 0x0a )

 - 사실 우리는 이러한 16진수 코드를 간간히 사용하며 이러한 방식에 익숙하다..

 - 루아에서는  문자열 변수.char() 함수 를 통해 파일쓰기에서 유용하게 사용 될 수 있을것이다.

 

  8  -  백스페이스

  9  -  탭

10  -  줄넘김

 

 

sample code

 

myFile:write( string.char (10)  ) 

 

 

 

3. string.len 함수, 문자열 길이 얻기

 - string.len( myString )

 - 별 말이 필요 없다

 

sample code

 

str = "12345"

string.len( str )

 

 

4. string.sub 함수

 - string.sub ( myString, start, end )

 - 이 함수는 memcpy 함수를 떠올리게 된다.  원하는 문자열 변수와  시작지점, 끝 지점을 대입하면

    원하는 시작위치부터 원하는 길이만큼을 돌려준다.

 

 

 

 

 

 

월/일/년  시/분/초  를 얻는법

 

sample code

 

string.format( "%s", os.date() ) )

 

'LUA' 카테고리의 다른 글

루아(LUA) 강좌 자료  (5) 2012.03.05
Lua 03. math  (3) 2012.03.05
Lua 02. 함수  (1) 2012.03.05
Lua 01. 문법  (0) 2012.03.05
Luci Reference: Templates  (3) 2012.02.17
Posted by GUCCI
, |

Lua 03. math

LUA / 2012. 3. 5. 10:33

수학 함수들은 math 테이블에 들어있다.

 

 

math.abs     math.acos   math.asin       math.atan       math.atan2
math.ceil     math.cos      math.deg       math.exp        math.floor
math.log      math.log10   math.max       math.min        math.mod
math.pow    math.rad      math.sin         math.sqrt        math.tan
math.frexp   math.ldexp   math.random  math.randomseed

 

math.pi

 

 

실수를 정수로...

 

floor 함수를 활용한다.

 

반올림이 필요할 경우 0.5 를 더한 뒤 floor 함수를 사용하면 될 것이다.

'LUA' 카테고리의 다른 글

루아(LUA) 강좌 자료  (5) 2012.03.05
Lua 04. 문자열  (1) 2012.03.05
Lua 02. 함수  (1) 2012.03.05
Lua 01. 문법  (0) 2012.03.05
Luci Reference: Templates  (3) 2012.02.17
Posted by GUCCI
, |

Lua 02. 함수

LUA / 2012. 3. 5. 10:32

1. 함수가 왔다

 - 루아에서는 함수는 c 와 유사하면서도 다른 독특한 성격을 지녔다.

 - 무슨 말이 필요하랴.. 예제를 보자.

 

sample code1

 

function Swap()

    -- ...............

end

 

 

함수의 시작은 function  이며   은   end 이다.

 

 

 - 루아에서 함수는 단일 및 다중 파라메터를 지원한다.

 

function Swap( a )

function Swap( a, b, c, d )

 

 

 

 - 놀라운 사실이다!   가변인자를 지원한다..

 

sample code2

 

function Swap( ... )

     for  indx = 1, arg.n

     do

              arg[1]  -- .........................

     end

end

 

 

 

요점만 말하겠다..   arg.n  을 통하여 개수를 파악할 수 있다.

 

사용법은 배열처럼 (   arg[1]  )  사용하면 된다.

 

사용 예 )

    function Swap( a,  b,  ... )

 

 

 

 

 - Return  ★★★★☆

 

  루아의 함수도 반환값(return value)을 돌릴 수 있다.  그것도 여러개도 된다!!  이건 정말 멋진 기능이다~ 샘플부터 보자.

 

sample code3

 

function GetTime()

     TimeStr  = " 몹시 흥분 "

     return TimeStr

end

 

 

 

sample code4   -- made sample.lua

 

function WhereAreYouFrom()
       str1 = "허리도"
       str2 = "가늘군"
       str3 = "만지면"
       str4 = "부러지리"
   
       strTotal = string.format("%s %s %s %s", str1, str2, str3, str4 )
    
       return str1, str2, str3, str4, strTotal
end

 

print( WhereAreYouFrom() )

 

 

sample code5   -- made sample.lua

 

function WhereAreYouFrom()
   str1 = "허리도"
   str2 = "가늘군"
   str3 = "만지면"
   str4 = "부러지리"
   
   strTotal = string.format("%s %s %s %s", str1, str2, str3, str4 )
   
   return str1, str2, str3, str4, strTotal
end

 

a,b,c,d,e = WhereAreYouFrom()

print(a,b,c,d,e)

 

 

 

 

두 샘플 모두 결과는 같다.

 

루아의 return 은 c,c++ 에서 클래스 및 구조체 형태의 덩어리를 정의하고 그것을 리턴하는 방식 등의 번거로움을 한방에 깬다.

 

 

 

 

 아직 return 에 대하여 끝난것이 아니다... 샘플부터 보자 ..

 

sample code6   --  made by sample.lua

 

function Home()


      print("집입니다.. 아 오늘 하루 쉬고 싶당... 그래도 출근해야지..")
      return Company()


end

 

function Company()


     local NightDuty = 1
     print("회삽니다..  아 오늘도 욜라 정신없이 코딩중이다.. \n집에가서 와우하고싶당.. ㅠ_ㅠ")
 
     if NightDuty == 1 then
              return FullTimeMode()

     else 
               print("와~~~ 퇴근이다~~ 집에가서 와우하자~")
               return Home()
     end
 
    return print("섹시미녀와의 데이트")

end

 

function FullTimeMode()


 print("오늘도 야근모드입니다... 집에가서 와우하긴 다 틀렸습니다 ㅠ_ㅠ")


end

 

 

  c, c++ 에서 겪은 순차적인 프로그래밍과는 거리가 먼 방식임을 알 수 있다..

  이러한 구조는 c 에서 사용하던 goto 문과 매우 흡사하며 필자는 플래시의 스크립트에서도 겪어봤다...

 

  솔직히 전 이론이 부실합니다... 호출스택이 어쩌고 저쩌고... 말 할 능력이 안됨을 용서하십시오 ㅠ_ㅠ

 

  - 서적에 설명된 내용을 대신 합니다..

 

  함수 호출들이 꼬리에 꼬리를 물고 있는 상황이라도 루아의 스택이 넘치는 일을 방지할 수 있다는 점에서 유용하다

  함수 호출 시 루아는 호출에 관련된 값들과 변수들을 '스택'에 쌓는다.

  그 값들은 호출이 끝나면 다시 스택에서 뽑혀지다.

  그런데 함수 안에서 또 다른 함수를 호출하는 '호출 연쇄'가 길게 이어지면,

  크기가 제한된 스택이 꽉 차서 루아 인터프리터가 죽는 일이 발생하다.

  그러나 앞서 언급한 특징을 이용하면 그런 일을 피할 수 있다. 

'LUA' 카테고리의 다른 글

Lua 04. 문자열  (1) 2012.03.05
Lua 03. math  (3) 2012.03.05
Lua 01. 문법  (0) 2012.03.05
Luci Reference: Templates  (3) 2012.02.17
LUA IDE 환경  (4) 2012.02.16
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함