回顾:库存项目
本课属于 Coddy Swift 学习旅程的“面向对象编程”单元。第 11 课,共 57 课。
挑战
中等完成结构体 StockItem,添加属性 name 和 quantity。添加可变方法 receive(_:)(增加库存)和 ship(_:)(仅当库存充足时才扣减,并返回是否成功),再添加不可变方法 label()。当数量为 0 时,它返回 tea: 12 或 tea: out of stock。
然后完成 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 在线编辑器