프로그래밍/lua

기본 사항

MAKGA 2021. 8. 7. 14:41
320x100

변수

-- 변수 생성
a = 10

-- 변수 삭제
a = nil

 

변수 타입

: 루아는 동적 타입 지정 언어이므로 별도의 데이터 타입을 지정하는 정의가 없다.

각 값은 내부에 자신의 타입을 담고 있다.

  • 문자열(string)
  • 수치(number)
  • 함수
  • 부울형(boolean)
  • 닐(nil)

 

닐(nil)

정상 값이 아니라는 뜻으로 사용

전역 변수를 지울 때 대입한다.

 

부울형(boolean)

true와 false를 가진다.

조건에선 false와 nil만 거짓으로, 나머지는 참으로 판단된다.

 

수치(number)

배정도 부동소수점(double-precision floating point) 수치를 뜻한다.

기본으로 실수형을 사용하며, 정수를 표현할 때 (10^14)를 넘지 않는다면 반올림 오차 없이 표현이 가능하다.

long 또는 float을 사용하도록 변경할 수 있다 (luaconf.h 파일 참조)

 

문자열(string)

변경 불가능한 값이며, 새로운 문자열을 만들어야 한다.

자동 메모리 관리 대상이다.

a = "one string"
b = string.gsub(a, "one", "another") --- 문자열의 일부분을 변경
print(a) --> one string
print(b) --> another string



[[ ]]를 사용하여 긴 문자열(여러 줄)을 지정할 수 있다.

page = [[
<html>
<head>
...
]]

write(page)

'[[' ']]'가 포함된 코드를 문자열에 넣고 싶은 경우, '[===['와 같이 두 각괄호 사이에 원하는 수 만큼 등호를 넣는다.

수치와 문자열 간에 자동 변환 기능을 제공한다.

print("10" + 1) --> 11
print("10 + 1") --> "10 + 1"
print("-5.3e-10" * "2") --> -1.06e-09


..(병합 연산자)가 있으며 앞에 공백이 없으면 소수점으로 판단함

print(10 .. 20) --> 1020 (병합 연산자)


#(길이 연산자)를 붙이면 문자열 길이를 알 수 있다.

print(#str) -->5

 

테이블(table)

가변 길이의 연관 배열을 구현한 기능이다.

a = {} -- 빈 테이블
k = "x"
a[k] = 10
a[20] = "great"


a.x = a["x"] 으로 표현 가능하고하다.
전자는 미리 정의돼있고, 고정된 키 집합을 사용할 때
후자는 키로 문자열을 사용하는 것을 알려줌

루아에서 배열은 1부터 시작하며, #(길이 연산자)를 사용해 배열의 마지막 색인을 반환한다

for i=1, #a do
  print(a[i])
end

printf(a[#a]) -- a 목록의 가장 마지막 값 출력
a[#a] = nill -- 가장 마지막 값 지우기
a[#a+1] = v -- 목록 끝에 v 추가

 

함수(function)

변수에 저장할 수 있고, 다른 함수에 인수로 전달할 수 있고, 결과 값으로 반환도 가능하다.

320x100