Ôn tập: mặt hàng trong kho
Thuộc phần Lập trình hướng đối tượng trong hành trình Swift của Coddy. Bài học 11 trên 57.
Thử thách
Trung bìnhHoàn thiện cấu trúc StockItem với các thuộc tính name và quantity. Thêm các phương thức có thể thay đổi receive(_:) (cộng thêm) và ship(_:) (chỉ trừ khi còn đủ hàng trong kho, trả về liệu thao tác có thành công hay không), cùng phương thức không làm thay đổi dữ liệu label() trả về tea: 12 hoặc tea: out of stock khi số lượng bằng 0.
Sau đó, hoàn thiện process(start:commands:): hàm này tạo mặt hàng, giữ một bản sao có tên opening trước lệnh đầu tiên, áp dụng các lệnh và trả về một dòng cho mỗi lần từ chối giao hàng (cannot ship 5), sau đó là now theo sau bởi nhãn của mặt hàng và was theo sau bởi nhãn của opening.
Code được cung cấp đọc mặt hàng theo định dạng name,quantity và các lệnh +n hoặc -n, rồi in ra từng dòng được trả về.
Code của bạn nằm trong StockItem.swift và Functions.swift. main.swift chứa code đầu vào/đầu ra được cung cấp và không thể chỉnh sửa.
Tự làm thử
// Đoạn code đầu vào/đầu ra đã được cung cấp: giữ nguyên
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) }
Tất cả bài học trong Lập trình hướng đối tượng
1Lớp và đối tượng
Làm việc với tệpĐịnh nghĩa lớpPhương thức và selfHàm khởi tạoLớp là tham chiếuÔn tập: Thẻ thư viện2Struct và kiểu giá trị
StructNgữ nghĩa giá trịPhương thức thay đổiStruct hay classÔn tập: mặt hàng trong kho5Kế thừa
Lớp conGhi đè phương thứcHàm khởi tạo và superfinal và hệ phân cấpÔn tập: hệ phân cấp nhân viên8Các giao thức tiêu chuẩn
CustomStringConvertibleEquatableComparableHashableÔn tập: Sắp xếp tùy chỉnhTự luyện tập: Playground Swift