Özet - Özel Sıralama
Coddy'nin Swift Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 41 / 57.
Görev
ZorBir 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
1Sınıflar ve Nesneler
Dosyalarla ÇalışmaSınıfları TanımlamaMetotlar ve selfBaşlatıcılarSınıflar ReferanstırTekrar - Kütüphane Kartı4Kapsülleme
Erişim DenetimiDışarıdan Salt OkunurDurumu KorumaBaşarısız Olabilen BaşlatıcılarTekrar - Banka Hesabı7Polimorfizm ve Generic'ler
PolimorfizmTür DönüşümüGeneric FonksiyonlarGeneric TürlerTekrar - Şekil Hesaplayıcı2Struct Yapıları ve Değer Türleri
Struct YapılarıDeğer SemantiğiDeğiştirici MetotlarStruct mı Class mıTekrar - Envanter Öğesi5Kalıtım
Alt sınıflarMetotları Geçersiz KılmaBaşlatıcılar ve superfinal ve HiyerarşilerTekrar - Çalışan Hiyerarşisi11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Swift playground