루아의 print 함수 사용법에 대하여 알아본다.
print 함수는 이름은 다르지만 어느 언어에나 표준출력으로 있는 함수로 GUI가 발달한 현대에는 print 함수를 사용해서 유저에게 메시지를 전달하는 일은 많이 없어졌지만 프로그램의 개발자에게는 가장 중요한 도구 중의 하나다. print 함수를 사용해서 언어의 내부를 탐구하고 실행테스트를 하며 디버깅까지 할 수 있다.
초반부터 사용하는 만큼 사용법을 잘 알아두면 생산성이 계속 오르는 함수이다.
1. 문자열 출력
"" 따옴표 안의 문자열을 출력한다. 한개짜리 따옴표나 두개짜리 따옴표 둘다 가능하다. 문자열 변수의 출력도 가능하다.
print("Hello Lua World!")
2. 숫자 출력
문자열 출력과 크게 다르지 않다. 숫자도 자유롭게 출력가능하다.
콤마는 탭의 공백을 주고 .. 로 합치면 빈틈이 없이 합쳐진다. 탭을 주면 간격이 넓어져서 디버그하기에 좋다.
print("Hello", "World!")
print("Hello" .. " World!")
아래와 같은 형태로 사용하면 좋다.
print("Hello" .. " " .. "World!")
한편 .. 은 문자열 연산자이기 때문에 아래와 같은 코드도 가능하다.
a = "Hello"
b = a .. "World!"
print(b)
숫자형도 사용할 수 있다. 물론 숫자는 문자열로 형변환한다.
b = a .. "World!" .. 3
루아는 C스타일의 이스케이프 시퀀스를 사용한다
print("Bell Ring: \a") -- interpreter shell
print("-------------")
print("ABCD\bE")
print("-------------")
print("ABCD\nEFG")
print("-------------")
print("ABCD\rE")
print("-------------")
print("ABCD\tEFG")
print("-------------")
print("\\ \" \'")
따옴표의 구조를 일치시켜서 서로 중복이 되지 않는 방법이다.
print("'STRING' INSIDE STRING")
print('"STRING" INSIDE STRING')
포맷 문자열을 사용한다. string.format 함수를 사용하면 C언어 스타일의 format 이 사용가능하다.
tag = "h1"
title = "book for lua"
print(string.format("<%s>%s</%s>", tag, title, tag))
print(string.format( "%f",19.99))
print(string.format( "%d",19))
포맷을 사용해서 형식을 만들 수도 있다.
day = 1
month = 7
year = 2020
print(string.format("%02d/%02d/%04d",day , month, year))
아스키코드로 알파벳을 출력할 수 있다.
alphabet = "Uppercase : "
for i= 65, 90 do
alphabet = alphabet .. string.char(i) .. ", "
end
print(alphabet)
과거에는 루아에서 한글을 사용하기 위해 별도의 라이브러리가 필요했던 것 같다.
utf8 인코딩을 지원하는 현재는 그럴 필요가 없는 것 같다. utf8 의 크기로 한글 하나의 크기가 1이다. 좀 더 쉽게 알아볼 수 있다.
한글 출력은 그냥 한글을 입력해서 사용하면 된다.
단 cp 949 로는 출력이 안될테니 콘솔창의 코드를 chcp 65001 로 바꾼다.
* 참고 문서 - 루아 참조 메뉴얼 한글 번역본