Ôn tập: Nhật ký nhiệt độ
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 16 trên 57.
Thử thách
KhóHãy xây dựng một nhật ký nhiệt độ nhỏ. Hoàn thiện enum Scale (celsius, fahrenheit, với giá trị thô C và F) và struct Reading, dùng để lưu nhiệt độ theo độ Celsius. Reading có hàm tạo tĩnh parse(_:) để đọc văn bản như 20C hoặc 68F (trả về nil với mọi nội dung khác), thuộc tính được tính toán fahrenheit và label, thuộc tính này trả về 20.0C / 68.0F. Lớp TemperatureLog lưu một mảng số đo và thuộc tính highest có trình quan sát didSet, ghi lại mỗi mức cao mới dưới dạng new high 25.0C.
Code được cung cấp thêm mọi số đo đã phân tích vào nhật ký (hoặc in ra bad reading: x), in nhãn của từng số đo, rồi cuối cùng in ra các kỷ lục mà trình quan sát đã ghi lại, mỗi kỷ lục trên một dòng.
Code của bạn nằm trong Scale.swift, Reading.swift và TemperatureLog.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 log = TemperatureLog()
for line in input {
if let r = Reading.parse(line) {
log.add(r)
print(r.label)
} else {
print("bad reading: \(line)")
}
}
for record in log.records { print(record) }
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ỉnh3Tìm hiểu sâu về thuộc tính
Thuộc tính tính toánQuan sát thuộc tínhThành viên tĩnhEnum với phương thứcÔn tập: Nhật ký nhiệt độTự luyện tập: Playground Swift