Menu
Coddy logo textTech

Recapitulação - Item de Inventário

Parte da seção Programação Orientada a Objetos do Journey de Swift da Coddy. Lição 11 de 57.

challenge icon

Desafio

Médio

Complete a struct StockItem com as propriedades name e quantity. Adicione os métodos mutantes receive(_:) (adiciona) e ship(_:) (subtrai somente quando há quantidade suficiente em estoque, retornando se isso ocorreu), e um método não mutante label() que retorna tea: 12 ou tea: out of stock para a quantidade 0.

Depois, complete process(start:commands:): ele cria o item, mantém uma cópia dele chamada opening antes do primeiro comando, aplica os comandos e retorna uma linha para cada envio recusado (cannot ship 5), depois now seguido pelo rótulo do item e was seguido pelo rótulo de opening.

O código fornecido lê o item como name,quantity e os comandos +n ou -n, e imprime cada linha retornada.

Seu código deve ficar em StockItem.swift e Functions.swift. main.swift contém o código fornecido de entrada/saída e não pode ser editado.

Experimente você mesmo

// Código de entrada/saída fornecido: mantenha-o como está
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) }

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Playground de Swift