Ôn tập: Sắp xếp tùy chỉnh
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 41 trên 57.
Thử thách
KhóThư viện nhạc sắp xếp và loại bỏ bài hát trùng lặp bằng các giao thức tiêu chuẩn. Song có title, artist, year và rating (1-5). Hãy làm cho Song tuân theo Equatable và Hashable dựa trên title và artist, không phân biệt chữ hoa chữ thường (cùng một bài hát của cùng một nghệ sĩ), tuân theo Comparable để sắp xếp theo điểm đánh giá từ cao xuống thấp, sau đó theo năm từ mới đến cũ, rồi theo tên bài hát theo thứ tự bảng chữ cái, và tuân theo CustomStringConvertible để có dạng Title - Artist (2019) **** với một dấu sao cho mỗi điểm đánh giá.
Hoàn thành playlist(_:), hàm này loại bỏ các bài hát trùng lặp bằng Set (giữ lại bài đầu tiên), sắp xếp bằng sorted() và trả về phần mô tả của các bài hát, sau đó duplicates removed: 1.
Code được cung cấp đọc các bài hát từ những dòng có dạng title,artist,year,rating và in ra từng dòng được trả về.
Đặt code của bạn trong Song.swift và Functions.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 đã cho: giữ nguyên
var input: [String] = []
while let line = readLine() { input.append(line) }
let songs = input.map { line -> Song in
let p = line.split(separator: ",").map(String.init)
return Song(title: p[0], artist: p[1], year: Int(p[2])!, rating: Int(p[3])!)
}
for line in playlist(songs) { 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