Menu
Coddy logo textTech

복습 - 재고 항목

Coddy Swift 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 57개 중 11번째.

challenge icon

챌린지

중급

StockItem 구조체를 name 및 quantity 프로퍼티와 함께 완성하세요. 변경 가능한 메서드 receive(_:)(추가)와 ship(_:)(재고가 충분할 때만 차감하고, 차감 여부를 반환)를 추가하고, 수량이 0일 때 tea: 12 또는 tea: out of stock를 반환하는 변경 불가능한 label()도 추가하세요.

그런 다음 process(start:commands:)를 완성하세요. 이 함수는 아이템을 생성하고, 첫 번째 명령을 실행하기 전에 아이템의 복사본을 opening이라는 이름으로 저장한 뒤, 명령을 적용하고, 거부된 출하마다 한 줄씩(cannot ship 5) 반환합니다. 그다음 now 뒤에 아이템의 레이블을 붙이고, was 뒤에 opening의 레이블을 붙입니다.

제공된 코드는 아이템을 name,quantity 형식으로 읽고, 명령을 +n 또는 -n 형식으로 읽은 다음, 반환된 각 줄을 출력합니다.

코드는 StockItem.swift 및 Functions.swift에 작성하세요. main.swift에는 제공된 입력/출력 코드가 들어 있으며 수정할 수 없습니다.

직접 해보기

// 제공된 입력/출력 코드: 그대로 유지하세요
var input: [String] = []
while let line = readLine() { input.append(line) }
let p = input[0].split(separator: ",").map(String.init)
let item = StockItem(name: p[0], quantity: Int(p[1])!)
for line in process(start: item, commands: Array(input.dropFirst())) { print(line) }

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: Swift 플레이그라운드