Lua - 데이터 타입

안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 Lua 데이터 타입의 흥미로운 세상으로 뛰어들어 보겠습니다. 만약 당신이 단 한 줄의 코드도 작성한 적이 없다면 걱정하지 마세요 - 우리는 매우 기초적인 부분부터 시작하여 차근차근 올라갈 것입니다. 이 수업이 끝나면 여러분은 Lua의 다양한 데이터 타입을 자신감 있게 다룰 수 있을 것입니다. 그麼, 시작해 보겠습니다!

Lua - Data Types

데이터 타입이란?

Lua 특정 데이터 타입에 뛰어들기 전에, 일반적으로 데이터 타입이 무엇인지 이해해 보겠습니다. 데이터 타입은 컴퓨터 프로그램에서 정보를 저장하는 다른 카테고리나 상자로 생각해 보세요. 마치 당신이 양말을 냉장고에 넣지 않는 것처럼, 컴퓨터는 올바르게 처리하기 위해 어떤 종류의 데이터를 다루고 있는지 알아야 합니다.

Lua의 기본 데이터 타입

Lua는 유연한 언어로, 기본 데이터 타입이 적습니다. 각각 탐구해 보겠습니다:

1. nil

nil 타입은 값의 부재를 나타냅니다. Lua는 "아무것도 없음" 또는 "값이 없음"을 말하는 방식입니다.

local emptyVariable = nil
print(emptyVariable)  -- 출력: nil

이 예제에서 우리는 nil을 변수에 명시적으로 할당했지만, 아직 값을 할당받지 않은 변수의 기본값도 nil입니다.

2. Boolean

Boolean은 간단합니다 - true 또는 false 중 하나입니다. 코드에서 결정을 내리는 데 매우 유용합니다.

local isSunny = true
local isRaining = false

print(isSunny)  -- 출력: true
print(isRaining)  -- 출력: false

if isSunny then
print("햇빛이 밝으니 썬글라스 잊지 마세요!")
end

여기서 우리는 if 문에서 Boolean을 사용했습니다. isSunnytrue라면, 썬글라스에 대한 알림을 출력합니다.

3. Number

Lua에서 모든 숫자는 이중 정밀浮動소수점 수로 표현됩니다. 이는 Lua가 정수와 소수를 구분하지 않는다는 것을 의미합니다.

local age = 25
local pi = 3.14159

print(age + pi)  -- 출력: 28.14159

이와 같이 Lua는 "정수"와 "소수"를 문제없이 더할 수 있습니다.

4. String

String은 문자의 시퀀스입니다. Lua에서는 단일 따옴표, 이중 따옴표, 또는 이중 대괄호를 사용하여 String을 만들 수 있습니다.

local name = "Alice"
local greeting = '안녕하세요, 세상!'
local longText = [[
이 글은 긴 문자열입니다.
여러 줄에 걸쳐 나타날 수 있습니다.
]]

print(name)  -- 출력: Alice
print(greeting)  -- 출력: 안녕하세요, 세상!
print(longText)

이중 대괄호는 여러 줄 문자열이나 따옴표가 포함된 문자열에 매우 유용합니다.

5. Table

Table은 Lua의 유일한 복합 데이터 구조체이지만, 매우 다양하게 사용할 수 있습니다. 배열, 딕셔너리, 객체 등으로 사용할 수 있습니다.

-- 배열로 사용하는 테이블
local fruits = {"사과", "바나나", "자두"}
print(fruits[2])  -- 출력: 바나나 (Lua 배열은 인덱스 1에서 시작합니다)

-- 딕셔너리로 사용하는 테이블
local person = {name = "Bob", age = 30, city = "뉴욕"}
print(person.name)  -- 출력: Bob

-- 혼합 스타일
local mixed = {
"첫 번째",
second = "값",
[3] = "세 번째"
}
print(mixed[1])  -- 출력: 첫 번째
print(mixed.second)  -- 출력: 값
print(mixed[3])  -- 출력: 세 번째

Table은 매우 강력하고 유연하며, 우리는 여기서 겨우 표면을 긁고 있을 뿐입니다!

6. Function

Lua에서 함수는第一級 값으로, 변수에 할당할 수 있고, 인자로 전달할 수 있으며, 다른 함수에서 반환할 수 있습니다.

-- 함수 정의
local function greet(name)
return "안녕하세요, " .. name .. "!"
end

-- 함수 사용
print(greet("Charlie"))  -- 출력: 안녕하세요, Charlie!

-- 함수를 변수에 할당
local sayHi = greet
print(sayHi("David"))  -- 출력: 안녕하세요, David!

이러한 함수의 유연성은 Lua의 가장 강력한 기능 중 하나입니다.

Type 함수

Lua는 모든 값의 타입을 확인할 수 있는 내장된 type() 함수를 제공합니다. 다음은 그 예입니다:

print(type(nil))  -- 출력: nil
print(type(true))  -- 출력: boolean
print(type(42))  -- 출력: number
print(type("hello"))  -- 출력: string
print(type({1,2,3}))  -- 출력: table
print(type(print))  -- 출력: function

이 함수는 특히 함수가 다양한 타입의 인자를 받을 수 있는 경우 값의 타입을 확인하는 데 매우 유용합니다.

Lua 데이터 타입 및 메서드 요약

여기서 Lua의 데이터 타입과 일반적인 연산을 빠르게 참조할 수 있는 표를 제공합니다:

데이터 타입 예시 일반 연산
nil nil 비교 (==, ~=)
boolean true, false 논리 연산 (and, or, not)
number 42, 3.14 산술 연산 (+, -, *, /, ^, %)
string "hello" 결합 (..), 길이 (#)
table {1, 2, 3} 인덱싱 ([]), 길이 (#), 삽입/삭제
function function() end 호출 (()), 할당

기억하시오, 연습이 완벽을 만들어 줍니다! 이 데이터 타입들을 자신의 Lua 프로그램에서 다양한 방법으로 실험해 보지 마세요. 그리고 그들을 서로 다른 방법으로 조합해 보세요. 그렇게 하면 점점 더 편안해질 것입니다.

제 경험에 따르면, 적극적으로 실험하고 실수를 하는 학생들이 가장 빠르게 배웁니다. 그麼, 실수를 하세요! 배우는 과정의 일부입니다. 그리고 누구도 몰라요, 새로운 것을 발견할 수도 있습니다.

행복하게 코딩하세요, 다음 수업에서는 Lua의 강력한 기능들로 더 깊이 탐구해 보겠습니다!

Credits: Image by storyset