Lua 문법 20분만에 끝내기 유투브 강좌 수강 내용 정리 본입니다.
프로그래밍 언어에 대해 익숙한 분을 기준으로 20분만에 Lua 문법을 익힐 수 있도록 정리해 둔 강의입니다.
20분만에 루아 언어에 대한 대략적인 특징을 알 수 있어 좋은 것 같아요.
강의 링크
https://www.youtube.com/watch?v=tiJlxyGumS0&t=51s
Lua 스크립트 실습 환경
Lua 프로그램을 다운로드 받지 않고 아래 URL로 접속하여 실습가능합니다.
Online Lua Compiler
Online Lua Compiler (Lua v5.3.4) Online Lua Compiler (Lua v5.3.4) helps you to Edit, Run and Share your Lua Code directly from your browser. This development environment provides you version Lua v5.3.4. How to give program Input? The latest version of Codi
www.tutorialspoint.com
사이트에 접속하면 회원가입 없이 테스트 가능하며, 회원가입을 하게되면 저장 및 부가 기능을 사용할 수 있습니다.

아래 내용은 강좌 내용의 요약 본으로 설명은 위 유투브 강좌를 참고하시기 바랍니다.
변수 범위
local 변수 범위
a=3
print(a)
if true then
local a = 20
local b = "bbbb"
print(a)
print(b)
end
print(a)
print(b)
실행 결과
3
20
bbbb
3
nil
타입
local a = 10
print(type(a))
a = nil
print(type(a))
a = "hello"
print(type(a))
a = 3213.1231
print(type(a))
a = (1>3)
print(type(a))
b = {"Lua", "Tutorial"}
print(type(b))
실행 결과
number
nil
string
number
boolean
table
연산
.. : 문자열 붙이기
# : 배열/테이블 갯수
local a = {'hi','my', 'name', 'is', 'pareko'}
print(#a)
print(a[1].."!! "..a[2]..' '..a[3].." "..a[4]..", "..a[5])
실행 결과
5
hi!! my name is, pareko
반복문
while 문
a = 10
while (a<20)
do
print("value of a :",a)
a = a + 1
end
실행 결과
value of a : 10
value of a : 11
value of a : 12
value of a : 13
value of a : 14
value of a : 15
value of a : 16
value of a : 17
value of a : 18
value of a : 19
for 문
for i = 10, 20, 1
do
print(i)
end
실행 결과
10
11
12
13
14
15
16
17
18
19
20
조건문
local a = false
local b = true
if( a and b)
then
print("a and b is true")
else
print("a and b is false")
end
실행 결과
a and b is false
if false
then
print(1)
else if true
then
print(2)
else
print(3)
end
end
실행 결과
2
함수
함수 정의 / 호출
local function hello(a,b)
print("Hello World")
return 123
end
hello()
print(type(hello))
print(hello) <-- 함수 참조
print(hello()) <-- 함수 실행
실행 결과
Hello World
function
function: 0x55885c6030b0
Hello World
123
함수 전달
myprint = function(param)
print("This is my print function = ##",param,"##")
end
function add(num1, num2, functionPrint)
result = num1+ num2
functionPrint(result)
end
myprint(10)
add(2,5,myprint)
실행 결과
This is my print function = ## 10 ##
This is my print function = ## 7 ##
파라미터가 확정되지 않은 경우
function average(...)
result = 0
local arg = {...}
for i,v in ipairs(arg) do
result = result + v
end
return result/#arg
end
print("The average is ", average(10,5,3,4,5,6))
실행 결과
The average is 5.5
스트링
myname="pareko"
print(string.upper(myname))
day=17;month=6;year=2022
print(string.format("Date : %04d-%02d-%02d", year, month, day))
print(string.format("%.3f",1/3))
print("Hello! "..myname)
print(string.rep("WHAT! ", 10))
실행 결과
PAREKO
Date : 2022-06-17
0.333
Hello! pareko
WHAT! WHAT! WHAT! WHAT! WHAT! WHAT! WHAT! WHAT! WHAT! WHAT!
Array
Array : table의 일종, 동일한 값만 들어감
aa = {}
print(type(aa))
aa = {"a","b","c","d","e","f"}
print("size : "..#aa)
for i=1,#aa do
print(aa[i])
end
aa = {1,2,3,4,5}
print("size : "..#aa)
for i =1,#aa do <-- 1부터 시작
print(aa[i])
end
실행 결과
table
size : 6
a
b
c
d
e
f
size : 5
1
2
3
4
5
2차원 배열
m_array = {}
for i = 1,10 do
m_array[i] = {}
for j=1, 10 do
m_array[i][j] = i*j
end
end
for i = 1,10 do
for j=1,10 do
print("["..i.."]["..j.."]"..m_array[i][j])
end
end
실행 결과
[1][1]1
[1][2]2
[1][3]3
[1][4]4
[1][5]5
[1][6]6
[1][7]7
[1][8]8
[1][9]9
[1][10]10
...
[10][6]60
[10][7]70
[10][8]80
[10][9]90
[10][10]100
table
t = { "aaa", 1,2, name="pareko", age=12, school="roblox School", 999}
print('== pairs iteration')
for k,v in pairs(t) do <-- 인덱스 없이 모두 꺼낼 수 있음
print(k,v)
end
print('== ipairs iteration')
for i,v in ipairs(t) do <-- 키가 없고 인덱스만 있는 값을 꺼낼 수 있음
print(i,v)
end
print("-- 접근")
print(t.name)
print(t["name"])
print(t[1])
실행 결과
== pairs iteration
1 aaa
2 1
3 2
4 999
age 12
name pareko
school roblox School
== ipairs iteration
1 aaa
2 1
3 2
4 999
-- 접근
pareko
pareko
aaa