요약 - 지갑 산술 연산
Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 30번째.
챌린지
쉬움이 장에서 배운 연산자 오버로딩 기술을 한데 모아 Wallet 클래스를 만들어 봅시다. 여러분의 지갑은 금액을 저장하며 두 가지 주요 연산을 지원합니다: +를 사용하여 지갑 합치기, 그리고 <code><와 를 사용하여 지갑 비교하기.
코드는 두 개의 파일로 구성됩니다:
Wallet.lua: 보유한 금액을 나타내는amount필드를 가진 Wallet 클래스를 정의합니다.:new(amount)생성자를 포함하고 다음 두 가지 메타메소드를 구현하세요:__add: 두 지갑을 더하면 합계 금액을 가진 새로운 지갑이 생성됩니다.__lt: 지갑을 비교하여 어느 지갑에 돈이 더 적게 들어있는지 결정합니다.
main.lua: Wallet 모듈을 불러오고(require), 지갑 인스턴스를 생성하며, 두 연산이 함께 작동하는 것을 보여줍니다.
세 개의 입력을 받게 됩니다:
- 첫 번째 지갑의 금액
- 두 번째 지갑의 금액
- 세 번째 지갑의 금액
메인 파일에서 주어진 금액으로 세 개의 지갑을 생성하세요. 그런 다음:
- 첫 번째와 두 번째 지갑을 더해 결합된 지갑을 만듭니다.
- 결합된 지갑의 금액을 출력합니다.
- 결합된 지갑과 세 번째 지갑을 <code><를 사용하여 비교하고 결과(
true또는false)를 출력합니다. - 결합된 지갑과 세 번째 지갑을
를 사용하여 비교하고 결과(true또는false)를 출력합니다.
예를 들어, 입력값이 50, 30, 100이라면 출력은 다음과 같아야 합니다:
80
true
false첫 번째 지갑(50)과 두 번째 지갑(30)을 더하면 80인 결합된 지갑이 생성됩니다. 80은 100보다 작으므로 첫 번째 비교는 true입니다. 80은 100보다 크지 않으므로 두 번째 비교는 false입니다.
직접 해보기
local Wallet = require('Wallet')
-- 입력 읽기
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())
-- TODO: 주어진 금액으로 세 개의 지갑 생성
-- TODO: 첫 번째와 두 번째 지갑을 더해 결합된 지갑 생성
-- TODO: 결합된 지갑의 금액 출력
-- TODO: <를 사용하여 결합된 지갑과 세 번째 지갑을 비교하고 결과 출력
-- TODO: >를 사용하여 결합된 지갑과 세 번째 지갑을 비교하고 결과 출력