Lua - 표준 라이브러리
안녕하세요, 야심勃勃한 프로그래머 여러분! 오늘 우리는 Lua의 표준 라이브러리를 통해 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 교사로서, 저는 여러분이 Lua 프로그래밍 경험을 즐겁고 생산적으로 만들어 주는 강력한 도구들을 안내해 드리겠습니다. 시작해 보겠습니다!
기본 라이브러리
기본 라이브러리는 Lua 프로그래밍의 스위스 아미리 knife와 같습니다. 거의 모든 Lua 스크립트에서 사용할 것인 기본적인 함수들을 포함하고 있습니다. 몇 가지 흔한 것들을 보겠습니다:
print()
print("Hello, World!")
이 간단한 줄은 "Hello, World!"를 콘솔에 출력합니다. 대부분의 프로그래밍 언어에서 가장 먼저 배우는 것이며, Lua도 예외가 아닙니다!
type()
local myVariable = 42
print(type(myVariable)) -- Output: number
type()
함수는 우리가 어떤 종류의 데이터를 다루고 있는지 알려줍니다. 이 경우, myVariable
이 숫자라는 것을 알려줍니다.
tonumber()와 tostring()
local myString = "123"
local myNumber = tonumber(myString)
print(myNumber + 7) -- Output: 130
local backToString = tostring(myNumber)
print(type(backToString)) -- Output: string
이 함수들은 문자열과 숫자 간의 변환을 수행합니다. 사용자 입력이나 파일에서 데이터를 다루는 경우 매우 유용합니다.
모듈 라이브러리
Lua의 모듈은 프로그램을 구성하는 블록들과 같습니다. 모듈 라이브러리는 이러한 블록들을 효율적으로 관리하는 데 도움을 줍니다.
require()
local myModule = require("myModule")
이 함수는 "myModule.lua" 파일을 로드하고 실행하며, 해당 모듈이 반환하는 것을 반환합니다. 이는 스크립트에 외부 코드를 포함하는 방법입니다.
문자열 조작
Lua는 강력한 문자열 조작 함수 세트를 제공합니다. 몇 가지를 살펴보겠습니다:
string.upper()와 string.lower()
local myString = "Hello, World!"
print(string.upper(myString)) -- Output: HELLO, WORLD!
print(string.lower(myString)) -- Output: hello, world!
이 함수들은 문자열을 대문자나 소문자로 변환합니다.
string.sub()
local myString = "Lua is awesome!"
print(string.sub(myString, 1, 3)) -- Output: Lua
print(string.sub(myString, -8)) -- Output: awesome!
string.sub()
는 문자열의 일부를 추출합니다. 첫 번째 숫자는 시작 위치이고, 두 번째 (선택 사항) 숫자는 종료 위치입니다.
테이블 조작
Lua의 테이블은 매우 다재다능합니다. 배열, 사전, 또는 그 둘의 혼합으로 사용할 수 있습니다. 테이블을 다루는 데 유용한 함수들을 몇 가지 소개합니다:
table.insert()
local myFruits = {"apple", "banana"}
table.insert(myFruits, "cherry")
print(myFruits[3]) -- Output: cherry
이 함수는 테이블의 끝에 요소를 추가하거나, 지정된 위치에 요소를 추가합니다.
table.remove()
local myNumbers = {10, 20, 30, 40}
local removed = table.remove(myNumbers, 2)
print(removed) -- Output: 20
print(myNumbers[2]) -- Output: 30
table.remove()
는 테이블에서 요소를 제거하고 반환합니다. 인덱스가 지정되지 않으면 마지막 요소를 제거합니다.
파일 입력과 출력
많은 애플리케이션에서 파일을 다루는 것은 필수적입니다. Lua는 파일 연산을 쉽게 사용할 수 있는 인터페이스를 제공합니다:
io.open()
local file = io.open("example.txt", "w")
file:write("Hello, File!")
file:close()
file = io.open("example.txt", "r")
local content = file:read("*all")
print(content) -- Output: Hello, File!
file:close()
이 예제는 파일을 쓰기 위해 열고, 쓰고, 닫은 후 다시 읽기 위해 열고 내용을 읽는 방법을 보여줍니다.
디버그 기능
디버깅은 모든 프로그래머에게 필수적인 기술입니다. Lua는 코드에서 문제를 이해하고 수정하는 데 도움이 되는 여러 함수를 제공합니다:
debug.traceback()
function foo()
print(debug.traceback())
end
foo()
이 함수는 스택 트레이스를 인쇄하며, 프로그램에서 오류가 발생한 위치를 이해하는 데 매우 유용합니다.
debug.getinfo()
function exampleFunction()
local info = debug.getinfo(1)
print("This function is defined in file " .. info.short_src .. " on line " .. info.linedefined)
end
exampleFunction()
debug.getinfo()
는 함수에 대한 정보를 제공하며, 함수가 정의된 파일과 줄 번호를 포함합니다.
우리의 Lua 표준 라이브러리에 대한 짧은 여정이 이 vậy입니다! 기억하시오, 연습이 완벽을 이루는 열쇠입니다. 이 함수들을 실험해 보고 무엇을 만들 수 있는지 보세요. 미래의 Lua 마스터 여러분, 즐겁게 코딩하세요!
Credits: Image by storyset