Menu
CoddyTech

回顾:库存项目

本课属于 Coddy Swift 学习旅程的“面向对象编程”单元。第 11 课,共 57 课。

challenge icon

挑战

中等

完成结构体 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 在线编辑器