블로그는 나의 힘!
[ Programing ]/Lua Scirpt2022. 3. 6. 00:46

1. assert(청크)()
 -. 컴파일된 루아 스크립트 청크를 하나의 처리 함수처럼 실행할 수 있도록 하는 수단.
 -. 청크는 하나의 명령 또는 일련의 명령들로, 크기에 제한이 없음.
 -. loadstring, loadfile 함수로도 청크를 적재, 컴파일 가능 함.
 -. loadstring으로도 임의의 청크를 실행할 수 있지만, 오류 메시지를 표시 하지 못 함.
 -. loadfile은 dofile이 더 유용하기 때문에 거의 사용 하지 않음.
 -. assert(loadstring(string))()을 이용하여 유용하게 사용 가능.

 ex)
 a = "hello word"
 b = "print(a)"

 assert(loadstring(b))()
 hello world




2. dofile(파일이름)
 -. 파일을 적재하고 즉시 처리.

 ex)
 dofile("scripts/runtime_functions.lua");
  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<< 수학 함수들>>

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 : 원주율 값을 담고 있음.


 

3. math.floor()
 -. 주어진 수의 소수부를 버리고 정수로 변환.
 -. 반올림이 필요하면 +0.5 함.

 ex)
 a = 5.125
 b = 5.75

 a = a + 0.5
 b = b + 0.5

 a = math.floor(a)     -- a = 5
 b = math.floor(b)     -- b = 6


 

4. math.ceil()
 -. 주어진 수의 소수부를 올리고 정수로 변환.
 

 ex)
 a = 5.125
 b = 5.75
 a = math.ceil(a)     -- a = 6
 b = math.ceil(b)     -- b = 6




  

5. math.random()
 -. 난수 발생 함수.
 -. 인자값을 주지 않으면 0~1 사이의 의사난수를 돌려줌.
 -. 인자 값으로 범위를 정함 : 범위안에 정수 난수를 돌려 줌.

 ex)
 myDie = math.random(1,6)

 -. 더 무작위 값을 얻기위해 종자값 함수 사용.

 ex)
 math.randomseed(os.data("%d%H%M%S"))     -- 날짜함수 유용.




6. math.max(), math.min()
 -. 어떤 집합에서 가장 큰 값과 가장 작은 값을 찾아 냄.

   
  

7. tonumber()
 -. 문자열을 수치로 변환.

 ex)
 mySting = "1234"
 myNum = tonumber(mySting)
 print(myNum + 2) --> 1236


 

8. tostring()
 -. 수치를 문자열로 변환.

 ex)
 myNum = 1234
 myString = tostring(myNum)
 print(type(myString)) --> "string"




9. string.char(n1, n2, ...)
 -. 주어진 수치 인수들을 ASCII 값들로 해석하고, 
    그 ASCII 값들에 해당한는 문자들로 하나의 문자열을 만들어서 돌려 줌.

 ex)
 myFile:write(string.char(10))     -- 열린 파일에서 줄 바꿈.

 


10. string.len(myString)
 -. 문자열의 개수 반환.

 ex)
 myString = "1234"
 print(string.len(myString))     --> 4




11. string.sub(myString, start, end)
 -. 문자열 안의 한 부분을 돌려줌, start~end 사이.

 ex)
 myString = "hello world"
 newString = string.sub(myString, 1, 5)
 print(newString) --> "hello"

 -. start, end는 음수 값도 가능하며, 끝을 기준으로 함.
 -. end는 생략시 문자의 끝으로 간주.

 


12. string.format()
 -. 문자열읠 포매팅하는 함수로, 여러 변수들의 값을 포함하는 문자열을 만들 때 편리 함.

 ex)
 myName = "Jungho"
 myIQ = 80
 myString = string.format("%s%s%d%s", myName, "'s IQ is ", myIQ, ".")
 print(myString)

 * 루아는 문자열 연결 연산자(..)를 제공




13. string.find(sourceString, findString)
 -. 첫 번째 인수로 주어진 원본 문자열에서 두 번째 인수로 주어진 대상 문자열이 
    처음 나타난 부분의 시작과 끝 위치를 돌려 줌.
 -. 없을 경우는 nil을 반환.

 ex)
 mySting = "My name is John Smith."
 sStart, sEnd = string.find(myString, "John")
 print(sStart, sEnd)     --> 12 15



<< 문자열과 패턴 >>

 -. 패턴이란 루아가 문자열로부터 의미 있는 결과를 걸러내도록 하는 일종의 틀이라고 할 수 있음.
 -. 루아의 패턴을 만든는 데 쓰이는 요소들.

. 모든 문자 %s 공백 문자
%a 영문자 %u 영문 대문자
%c 제어문자 %w 영수문자
%d 숫자 %x 16진수 숫자
%l 영문 소문자 %z 코드 값 0에 해당하는 숫자
%p 문장부호

 
 


14. string.gsub(sourceString, pattern, replacementString)
 -. 문자열에서 pattern에 부합하는 부분을 replacementString으로 주어진 문자열로 치환.

 ex)
 myString = "Tel : 555-3257"
 newStr= string.gsub(myString, "%d", "*")
 print(newStr)     --> Tel : ***-****


 

15. string.gfind(sourceString, pattern)
 -. 첫 번째 인수로 주어진 문자열에서 두 번째 인수로 주어진 패턴을 한 번에 하나씩 차례로 찾아 나감.

 ex)
 myString = "This is my rather long string."
 print(myString)

 counter = 1

 for myWord in string.gfind(myString, "%a+") do
     print(string.format("Word #%d : %s", counter, myWord))
     counter = counter + 1
 end

 -. %a+는 빈칸이나 문장부호, 숫자 등이 나오기 전까지의 임의의 개수의 영문자들을 의미 함.

 

 

16. table.getn(myTable)
 -. table의 요소 개수를 돌려 줌.

 ex)
 for index=1, table.getn(myTable) do
     print(myTable[index])
 end


 

17. table.sort(myTable [, comp])
 -. table의 요소들을 크기를 비교하여 comp에 따라 정렬 함.

 ex)
 function Sort(theTable, direction)
     if direction ~= 1 then
         table.sort(theTable) -- 오름 차순 정렬
     else
         function Reverse(a, b) -- 반전 함수 정의
             if a<b then
                 return false
             else
                 return true
                 end
             end
         table.sort(theTable, Reverse) -- 반전 함수 값의 따라
     end -- 정렬 : 내림차순
end  




18. table.insert(myTable, position, value)
 -. table에 새 요소를 추가.
 -. position 인수를 생략하면 table 끝에 추가.

 ex)
 table.insert(myTable, 25, “hello")




19. table.remove(myTable, position)
 -. table에서 특정 요소를 제거하고 그 요소를 돌려 줌.

 ex)
 print(table.remove(myTable, 25))

 


20. 기본적인 입출력
 -. 파일 열기
    : myFile = io.open("test_data.lua", "w")     -- "a"

 -. 파일 닫기
    : io.close(myFile)

 -. 파일에 쓰기
    : myFile:write("-- Test lua file")

 -. 파일로 부터 읽기
    : res = myFile:read("*all")     -- "*line", "*number"

 



[출처] Lua - 07. 표준 라이브러리|작성자 악마

 

◇ The first step is always the hardest ◇ : 네이버 블로그

인생은 한방 !

blog.naver.com



 

'[ Programing ] > Lua Scirpt' 카테고리의 다른 글

Lua - C++ 연동 간단한 예제  (0) 2022.03.06
Lua - C++과의 연동  (0) 2022.03.06
Lua - 명령문(Statements)  (0) 2022.03.06
Lua - 연산자(Expressions)  (0) 2022.03.06
Lua - 변수(Variables)  (0) 2022.03.05
Posted by Mister_Q