Lua(루아)는 확장성이 뛰어나며 가볍고 실행 속도가 굉장히 빠른 스크립트 언어입니다.
-- 한 줄 주석
--[[
여러 줄 주석
]]
local Table = {2, 5, "s", true, false, a = 2, {2,4,f = 2}, "g"}
and
, or
, not
을 사용합니다.local t = { "hello", " lua", "world" }
print(t[1] .. t[2] .. " table count is " .. #t)
// 결과
hello lua table count is 3
local num = -5
if (num == 0) then
print("num is zero")
elseif (num < 0) then
print("num is negative")
else
print("num is positive")
end
❗️사용 방법
1. 조건의 끝에 반드시 then을 붙여야 합니다.
2. 조건문이 끝나면 반드시 end를 붙여야 합니다.
a = 0
while (a < 10) do
print("a: " .. a)
a = a + 1
end
for i = 0, 10, 1 do
print(i)
end
for (시작 값, 비교 값, 증가 값)이라고 생각하면 됩니다.
a = 0
repeat
print("value of a: ", a)
a = a + 1
until( a > 10 )
Lua에서의 테이블은 Array와 Dictionary의 특징을 모두 가질 수 있습니다.
또한 index가 1부터 시작됩니다.
table = { "abc", 1, 2, name = 'han', age = 28, 999 }
print(table[1])
print(table.name)
print(table[4])
// 결과
abc
han
999
인덱스를 카운트할 때 name = "han"과 같이 키값을 가지는 값이 있으면 무시하고 index를 카운트합니다.
table = { "abc", 1, 2, name = 'han', age = 28, 999 }
print("pairs test")
for key, value in pairs(table) do
print("key: " .. key, "value: " .. value)
end
print("")
print("ipairs test")
for index, value in ipairs(table) do
print("index: " .. index, "value: " .. value)
end
// 결과
pairs test
key: 1 value: abc
key: 2 value: 1
key: 3 value: 2
key: 4 value: 999
key: name value: han
key: age value: 28
ipairs test
index: 1 value: abc
index: 2 value: 1
index: 3 value: 2
index: 4 value: 999
table = {
["햄버거"] = 8000, ["치킨"] = 12000,
["피자"] = 15000, ["파스타"] = 14000,
["콜라"] = 1000, ["사이다"] = 1000
}
for key, value in pairs(table) do
print(key, value)
end
// 결과
피자 15000
햄버거 8000
치킨 12000
사이다 1000
콜라 1000
파스타 14000
key에 문자열을 넣으려고 할 때 []
를 사용하여 key를 설정할 수 있습니다.
local function add(a, b)
print(a, b)
return a + b
end
print(add(2, 1.2))
함수에 local을 붙이면 local 함수, 아무것도 없으면 global 함수가 됩니다.
function average(...)
local result = 0
local arg = { ... }
for i, v in ipairs(arg) do
result = result + v
end
return result / #arg
end
print("average = " .. average(10, 5, 3, 4, 5, 6))
함수의 파라미터가 확정되지 않았을 때 ... 형태로 넘겨서 함수 안에서 하나씩 불러 쓸 수 있습니다.
local year = 2024
local pi = 3.141592
local hi = "hello world"
print(string.format("%d년", year))
print(string.format("원주율 = %f", pi))
print(string.format("인사: %s", hi))
// 결과
2024년
원주율 = 3.141592
인사: hello world
for line in io.lines() do
return line
end
dofile("C:\Users\GEN11\Desktop\Work\script.lua")
szFile = io.open("C:\Users\GEN11\Desktop\Work\data.txt", "r")
for line in szFile:lines() do
print(line)
end
ex) print("hello"..
" world")
ex) #
t
t[i], t[i + 1] = t[i + 1], t[i]