Ôn tập: Thẻ thư viện
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 6 trên 57.
Thử thách
Trung bìnhHoàn thiện lớp LibraryCard. Hàm khởi tạo nhận name của thành viên và limit (mặc định là 3), đồng thời bắt đầu với danh sách chưa mượn sách nào. borrow(_:) trả về true và thêm tên sách, trừ khi thẻ đã đạt giới hạn hoặc đã có tên sách đó. giveBack(_:) trả về true khi đã xóa tên sách. status() trả về Ada: 2/3 (Dune, Emma) cùng các tên sách theo thứ tự mượn, hoặc Ada: 0/3 khi chưa mượn sách nào.
Code được cung cấp đọc tên, giới hạn (hoặc một dòng trống để dùng giá trị mặc định), rồi đọc các lệnh +title hoặc -title. Code in ra ok hoặc no cho mỗi lệnh, rồi cuối cùng in ra status().
Đặt code của bạn trong LibraryCard.swift. main.swift chứa code đầu vào/đầu ra được cung cấp và bạn không thể chỉnh sửa tệp này.
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 card = input[1].isEmpty ? LibraryCard(name: input[0]) : LibraryCard(name: input[0], limit: Int(input[1])!)
for cmd in input.dropFirst(2) {
let title = String(cmd.dropFirst())
let done = cmd.hasPrefix("+") ? card.borrow(title) : card.giveBack(title)
print(done ? "ok" : "no")
}
print(card.status())
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