সুইফট 3 এর সাহায্যে আপনি আপনার সমস্যা সমাধানের জন্য নিম্নলিখিত উপায়গুলির মধ্যে একটি চয়ন করতে পারেন।
1. ব্যবহার sorted(by:)
একটি সঙ্গে Movie
বর্গ যে সমর্থন করে না Comparable
প্রোটোকল
যদি আপনার Movie
ক্লাসটি Comparable
প্রোটোকলের সাথে সম্মতি না দেয় তবে আপনাকে অবশ্যই আপনার বন্ধের মধ্যে সেই সম্পত্তিটি নির্দিষ্ট করতে হবে যেখানে আপনি অ্যারের sorted(by:)
পদ্ধতিটি ব্যবহার করতে চান ।
Movie
শ্রেণীর ঘোষণা:
import Foundation
class Movie: CustomStringConvertible {
let name: String
var date: Date
var description: String { return name }
init(name: String, date: Date = Date()) {
self.name = name
self.date = date
}
}
ব্যবহার:
let avatarMovie = Movie(name: "Avatar")
let titanicMovie = Movie(name: "Titanic")
let piranhaMovie = Movie(name: "Piranha II: The Spawning")
let movies = [avatarMovie, titanicMovie, piranhaMovie]
let sortedMovies = movies.sorted(by: { $0.name < $1.name })
// let sortedMovies = movies.sorted { $0.name < $1.name } // also works
print(sortedMovies)
/*
prints: [Avatar, Piranha II: The Spawning, Titanic]
*/
2. প্রোটোকলের সাথে সঙ্গতিপূর্ণ এমন sorted(by:)
একটি Movie
শ্রেণীর সাথে ব্যবহার করাComparable
যাইহোক, আপনার Movie
ক্লাসটি Comparable
প্রোটোকলের সাথে সামঞ্জস্য করে আপনি যখন অ্যারের sorted(by:)
পদ্ধতিটি ব্যবহার করতে চান তখন আপনার অনেক সংক্ষিপ্ত কোড থাকতে পারে ।
Movie
শ্রেণীর ঘোষণা:
import Foundation
class Movie: CustomStringConvertible, Comparable {
let name: String
var date: Date
var description: String { return name }
init(name: String, date: Date = Date()) {
self.name = name
self.date = date
}
static func ==(lhs: Movie, rhs: Movie) -> Bool {
return lhs.name == rhs.name
}
static func <(lhs: Movie, rhs: Movie) -> Bool {
return lhs.name < rhs.name
}
}
ব্যবহার:
let avatarMovie = Movie(name: "Avatar")
let titanicMovie = Movie(name: "Titanic")
let piranhaMovie = Movie(name: "Piranha II: The Spawning")
let movies = [avatarMovie, titanicMovie, piranhaMovie]
let sortedMovies = movies.sorted(by: { $0 < $1 })
// let sortedMovies = movies.sorted { $0 < $1 } // also works
// let sortedMovies = movies.sorted(by: <) // also works
print(sortedMovies)
/*
prints: [Avatar, Piranha II: The Spawning, Titanic]
*/
3. প্রোটোকলের সাথে সঙ্গতিপূর্ণ এমন sorted()
একটি Movie
শ্রেণীর সাথে ব্যবহার করাComparable
আপনার Movie
ক্লাসটিকে Comparable
প্রোটোকল অনুসারে তৈরি করে, আপনি অ্যারের sorted()
পদ্ধতিটি বিকল্প হিসাবে ব্যবহার করতে পারেন sorted(by:)
।
Movie
শ্রেণীর ঘোষণা:
import Foundation
class Movie: CustomStringConvertible, Comparable {
let name: String
var date: Date
var description: String { return name }
init(name: String, date: Date = Date()) {
self.name = name
self.date = date
}
static func ==(lhs: Movie, rhs: Movie) -> Bool {
return lhs.name == rhs.name
}
static func <(lhs: Movie, rhs: Movie) -> Bool {
return lhs.name < rhs.name
}
}
ব্যবহার:
let avatarMovie = Movie(name: "Avatar")
let titanicMovie = Movie(name: "Titanic")
let piranhaMovie = Movie(name: "Piranha II: The Spawning")
let movies = [avatarMovie, titanicMovie, piranhaMovie]
let sortedMovies = movies.sorted()
print(sortedMovies)
/*
prints: [Avatar, Piranha II: The Spawning, Titanic]
*/