Lua 언어의 기초

이 장에서는 화면에 Hello World를 표시하는 프로그램을 작성해 보겠다. 동시에 Lua 언어의 기초를 배우게 된다.

화면에 문자 표시하기

다음 소스 코드1 를 에디터에 붙여넣기 한다.

print ("Hello World!")

C 언어와 달리 main 함수는 없으며, 프로그램은 단 한 줄로 구성되어 있다. 이 프로그램의 실행 결과는 다음과 같다.

실행 결과:

Hello World!

화면에 문자를 표시할 때는 print 함수를 사용한다.

형식:

print ("뭔가 표시하고 싶은 문장은 여기에 적는다")

print 함수는 다음과 같이 작성할 수도 있다.

print("Hello World!")
print('Hello World!')
print "Hello World!"
print([[Hello World!]])

위의 3가지 코드는 모두 같은 의미이다.

문자열을 큰따옴표("")로 묶어도 작은따옴표('')로 묶어도 상관없다. 다만 4번째 코드만 조금 의미가 다르다. 이는 다음 장에서 이스케이스 시퀀스에 대해서 설명한다.

이스케이프 시퀀스(escape sequence)

print 문에서 문자열을 줄바꿈하고 싶은 경우가 있을 수 있다. 줄바꿈을 할 때, 특수 문자를 사용하여 줄바꿈을 한다. 줄바꿈의 경우 \n이라는 문자를 사용한다. n\n 두 글자를 조합하여 줄바꿈이라는 의미이다.2

다음과 같이 작성한다.

print("Hello\nWorld!")

실행 결과:

Hello
World!

줄바꿈 문자 외에 이스케이프 시퀀스는 아래와 같다.

표 2.1: 이스케이프 시퀀스 목록

기호 의미
\n 줄바꿈
\a BEEP 소리(경고음)
\t
\b 백스페이스
\' 작은따옴표
\" 큰따옴표
\\ 백슬래시(한글인 경우, 원 표시)

앞에서 장에 나온 print ([[Hello World!]])라는 print 함수 작성법인데, 이는 이스케이프 문자를 무시하고 문자열을 그대로 출력한다.

예를 들어 다음과 같은 코드가 있다고 하자.

print([[Hello\nWorld!]])

이 코드의 실행 결과는 다음과 같다.

실행 결과:

Hello\nWorld!

문자열을 그대로 출력하므로 줄바꿈 등도 그대로 표시된다. 예를 들어, 다음과 같은 경우dl다.

실행 결과:

print([[Hello
World!
헬로 월드!
]])

이 프로그램의 실행 결과는 다음과 같다.

실행 결과:

Hello
World!
헬로 월드!

코멘트(comment)

C 언어와 마찬가지로 프로그램 내에 주석을 작성할 수 있다. 주석은 소스 코드(자신이 C언어로 작성한 문장) 안에서 그 소스가 무엇을 의미하는지 쓰고 싶을 때 사용한다.

예를 들어, 다음과 같은 소스가 있다고 가정해보자.

print ("Hello World!") -- Hello World! 라고 화면에 표시한다.

-- Hello World! 라고 화면에 표시한다라는 부분은 주석이다. 마이너스가 두 개 겹쳐져 있다. -- 이후의 줄 끝까지가 주석이 된다.

여기서 여러 줄의 코멘트를 쓰고 싶은 경우도 있을 것이다.

--이
--부분은
--주석이
--된다.
``
이대로 해도 상관 없지만, Lua에서는 여러 줄의 코멘트를 작성할 , `--[[`와 `]]`로 둘러싸서 코멘트로 만들  있다.

```lua
--[[
부분이
주석이
된다.
]]

예시

주석이 포함된 프로그램

이 프로그램에서는 "This line is not displayed."라는 부분이 실행 결과에 표시되지 않는다는 점이다. 주석 처리된 부분은 비록 명령어라 할지라도 무시된다. 또한, C 언어의 printf와 달리 print 함수를 한 번 실행하면 문장 끝에 자동으로 줄바꿈이 추가된다.

소스:

--print 함수의 끝은 임의로 줄바꿈된다.
print("This is a test program ")
print("without indented.")

--[[
이 부분은 주석 처리되어 표시되지 않는다.
print("This line is not displayed. ")
]]

실행 결과:

This is a test program
without indented.

긴 문장을 표시하는 프로그램

한 줄에 표시할 문자가 많은 경우, 같은 줄에 쓰면 코드가 읽기 어려워지는 경우가 있다. 이 경우 수정하는 방법을 알아보자. print 함수를 한 번만 사용하여, There are 10 types of people in this world. Those who understand binary and those who don't. Which one are you? 표시해 보도록 하자.

하지만 같은 줄에 쓰면 코드가 읽기 힘들어진다. 이 경우 다음과 같이 코드를 작성할 수도 있다.

소스:

-- 이를 위해 다음과 같이 코드를 작성할 수도 있다.
print("There are 10 types of people in this world." ..
"Those who understand binary and those who don't." ..
"Which one are you?" )

실행 결과:

There are 10 types of people in this world.Those who understand binary and those who don't.Which one are you?

큰따옴표를 표시하는 프로그램

다음과 같은 문자열을 표시하는 프로그램을 만들려고 한다.

He said, "How dare you do to me like that!"

이럴 때 다음과 같은 코드를 작성해 봤지만 잘 되지 않는다.

print("He said, "How dare you do to me like that!"")  --error

이 코드는 에러가 발생하여 실행할 수 없다. 그렇다면 어떻게 하면 "(큰따옴표)를 표시할 수 있을까? 그 해답은 앞서 소개한 이스케이프 시퀀스를 사용하면 해결할 수 있다.

print("He said, \"How dare you do to me like that!\"")

또는 다음과 같이 작성할 수도 있다.

print([[He said, "How dare you do to me like that!"]])

이렇게 할 수 있다는 것도 잘 기억해두자.

실행 결과:

He said, "How dare you do to me like that!"

  1. 소스 코드란 프로그래밍 언어로 작성된 문장을 말한다. ↩︎

  2. 한글인 경우에는 백슬래시는 원 마크 를 사용한다. ↩︎




최종 수정 : 2024-04-22