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(t[1]) 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. 정리 지금 자료형과 연산자를 살펴 보았습니다. 마지막으로 오늘 배운 것 이외에 추가로 주석처리 하는 방법을 살펴 보겠습니다. 앞서 예제에서 '--' 를 하고 코드를 설명했는데 '--' 가 주석을 시작하는 코드입니다. 한 줄 이상의 주석 처리는 "--[[" 와 "--]]"를 통해서 처리할 수 있습니다. > --- 나는 주석 > --[[ 나는 주석 --]]