Menu
Coddy logo textTech

Özet - Özel Sıralama

Coddy'nin Swift Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 41 / 57.

challenge icon

Görev

Zor

Bir müzik kitaplığı, standart protokollerle şarkıları sıralar ve yinelenenleri kaldırır. Song yapısında title, artist, year ve rating (1-5) bulunur. Büyük/küçük harfleri yok sayarak (aynı sanatçının aynı şarkısı) title ve artist temelinde Equatable ve Hashable yapın; Comparable ile önce rating'i yüksekten düşüğe, sonra yılı yeniden eskiye ve ardından başlığı alfabetik olarak sıralayın; ayrıca CustomStringConvertible değerini, rating puanı başına bir yıldız olacak şekilde Title - Artist (2019) **** biçiminde tanımlayın.

Yinelenenleri (ilkini koruyarak) bir Set ile kaldıran, sorted() ile sıralayan ve şarkıların açıklamalarını, ardından duplicates removed: 1 ifadesini döndüren playlist(_:) işlevini tamamlayın.

Sağlanan kod, şarkıları title,artist,year,rating satırları olarak okur ve döndürülen her satırı yazdırır.

Kodunuz Song.swift ve Functions.swift dosyalarına gitmelidir. main.swift sağlanan giriş/çıkış kodunu içerir ve düzenlenemez.

Kendin dene

// Sağlanan girdi/çıktı kodu: olduğu gibi bırakı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) }

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Swift playground