Menu
Coddy logo textTech

함수를 포함한 테이블

Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 1번째.

Lua에서 테이블은 매우 다재다능합니다. 데이터를 저장하는 것 외에도 함수를 포함할 수 있습니다. 이를 통해 관련된 연산들을 함께 그룹화하여 코드를 체계적이고 관리하기 쉽게 유지할 수 있습니다.

테이블 안에 함수를 넣으려면, 다른 값과 마찬가지로 키에 할당하기만 하면 됩니다:

local myTable = {
    greet = function(name)
        return "Hello, " .. name
    end
}

print(myTable.greet("Alice"))  -- 출력: Hello, Alice

함수를 별도로 정의한 다음 테이블에 추가할 수도 있습니다:

local myTable = {}

myTable.greet = function(name)
    return "Hello, " .. name
end

또는 다음과 같이 더 깔끔한 단축 구문을 사용하세요:

local myTable = {}

function myTable.greet(name)
    return "Hello, " .. name
end

세 가지 접근 방식 모두 동일한 결과를 생성합니다. 점 표기법(dot notation)을 사용하여 함수를 호출합니다: myTable.greet("Alice"). 데이터와 함수를 묶는 이 패턴은 Lua에서 객체 지향 프로그래밍의 기초입니다.

challenge icon

챌린지

쉬움

네 가지 산술 함수를 포함하는 calculator라는 이름의 테이블을 생성하세요:

  • add(a, b) - ab의 합을 반환합니다.
  • subtract(a, b) - a에서 b를 뺀 값을 반환합니다.
  • multiply(a, b) - ab의 곱을 반환합니다.
  • divide(a, b) - ab로 나눈 값을 반환합니다.

세 개의 입력을 받게 됩니다:

  1. 연산 이름 (add, subtract, multiply, divide 중 하나)
  2. 첫 번째 숫자
  3. 두 번째 숫자

연산 이름을 기반으로 calculator 테이블에서 적절한 함수를 호출하고 그 결과를 출력하세요.

치트 시트

Lua에서 테이블은 데이터와 함께 함수를 저장할 수 있습니다. 테이블에 함수를 추가하려면 키에 함수를 할당하세요:

local myTable = {
    greet = function(name)
        return "Hello, " .. name
    end
}

print(myTable.greet("Alice"))  -- 출력: Hello, Alice

함수를 별도로 정의하고 테이블에 추가할 수도 있습니다:

local myTable = {}

myTable.greet = function(name)
    return "Hello, " .. name
end

또는 단축 구문을 사용할 수 있습니다:

local myTable = {}

function myTable.greet(name)
    return "Hello, " .. name
end

점 표기법을 사용하여 테이블 함수를 호출합니다: myTable.greet("Alice")

직접 해보기

-- 입력 읽기
local operation = io.read()
local num1 = tonumber(io.read())
local num2 = tonumber(io.read())

-- TODO: 네 가지 함수를 가진 calculator 테이블 생성:
-- add(a, b), subtract(a, b), multiply(a, b), divide(a, b)


-- TODO: 연산 이름을 사용하여 calculator 테이블에서 적절한 함수 호출
-- 그리고 결과 출력
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Object Oriented Programming의 모든 레슨