E D R , A S I H C RSS

LUA_2

1. 자료형

이번에는 루아의 자료형에 대해서 글을 써 보겠습니다. 루아의 자료형은 많지 않습니다. 기본적인 자료형은 숫자, 문자열, nil(Null) , boolean 이 있습니다. 간단하게 예를 살펴보면 type 연산자로 자료형의 이름을 알 수 있습니다.

print(type("TEST")) --- 문자열
string
print(type(1)) --- 숫자
number
print(type(true)) --- 논리 자료형
boolean
print(type(nil)) --- NULL 값
nil

위와 같은 명령어로 자료형의 type을 알 수 있습니다.
그리고 추가적으로 table이라는 자료형이 있습니다. table은 배열로 볼 수도 있지만 루아에서는 좀 더 다른 의미를 갖습니다. table은 나중에 따로 설명하도록 하겠습니다. 우선 오늘은 맛보기로 table을 만들어만 보겠습니다.

print(type({}))
table
t = {"a","b","c"}
print(t1)
a

이제 각각의 자료형은 좀 더 자세히 살펴 보겠습니다. 우선 number 부터 살펴 보겠습니다.
number는 정수형, 실수형,지수형이 있을 수 있습니다.
print(1) --- 상수
1
print(0xa) --- 16진수
10
print(1.1) --- 실수
1.1
print(1e2) --- 지수형 1 * 10^2
100
print(1/0)
1.#INF

boolean 논리 자료형은 true/false 와 같이 비교 연산자를 통해 얻은 값을 말합니다.
print( 1 > 2 )
false

nill 은 단순히 자료형일 뿐만 아니라 instance화 되지 않은 모든 객체 형태를 말합니다.
print( test )
nill

2. 연산자

자료형을 배웠으니 이제 자료형을 연산하기 위한 연산자들을 살펴 보겠습니다.
우선 간단한 대입부터 보겠습니다.
sum = 10 + 10 --- 기본적인 number 대입
print(sum)
20

루아는 특이하게 복수 대입을 사용할 수 있습니다. 예를 들면 첫번째 변수에는 '=' 이후 첫번째 값을 두번째 변수에는 두번째 값을 대입하는 방식으로 사용할 수 있습니다.
a,b = 10,20
print (a)
10
print(b)
20

이제는 기본 사칙 연산과 비교 연산자를 사용하는 예제를 보겠습니다.
a = 1 + 2 / 3 * 4
print (a)
3.6666666666667

print (a>3) ---- a는 3보다 크다.
true
print (a>3 and a<4) --- a는 3보다 크고 4보다 작다.
true
print (a==3) --- a는 3과 같다.
false
print (a~=3) --- a는 3과 같지 않다.
true

지금까지 수치 연산자를 살펴보았는데, 이제는 문자열 연산자를 살펴보겠습니다.
우선 루아에서는 .. (마침표 두개) 를 통해 문자열을 붙일 수 있습니다. 이 연산자는 좀 특이하죠.

print("a".."b")
ab

다음에는 인용문 출력하기 '' '' 를 통해서 multi line의 문자열을 출력할 수 있습니다.

print([[hello
world
!!]] )
hello
world
!

문자열 비교 연산자, 문자열도 알파벳 순으로 비교, 크고 작고를 알 수 있습니다.

A, B = "abc","abd"
print (A>B)
false

문자열의 길이 알아보는 연산자
string_length = "123456"
print(#string_length)
6

마지막으로 루아의 자동 형 변환 기능을 보여드리겠습니다.
fake_two = "2" --- 여기서는 문자열
print( -fake_two + 2 ) --- -fake_two는 앞에 '-'로 인해 음수가 되고 여기에 2를 더해서 0이 출력 됨
0

3. 정리
지금 자료형과 연산자를 살펴 보았습니다.
마지막으로 오늘 배운 것 이외에 추가로 주석처리 하는 방법을 살펴 보겠습니다. 앞서 예제에서 '' 를 하고 코드를 설명했는데 '' 가 주석을 시작하는 코드입니다. 한 줄 이상의 주석 처리는 "----"를 통해서 처리할 수 있습니다.
--- 나는 주석
--[[ 나는
주석 --]]
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:37
Processing time 0.0249 sec