Swift 5 ile max(_:_:)
ve min(_:_:)
bir parçası olan Küresel Sayısal Fonksiyonlar . max(_:_:)
aşağıdaki beyana sahiptir:
func max<T>(_ x: T, _ y: T) -> T where T : Comparable
Bunu Int
s ile şu şekilde kullanabilirsiniz :
let maxInt = max(5, 12)
Ayrıca, adında başka işlevler de olduğunu max(_:_:_:_:)
ve min(_:_:_:_:)
daha fazla parametreyi karşılaştırmanıza izin veren unutmayın. max(_:_:_:_:)
aşağıdaki beyana sahiptir:
func max<T>(_ x: T, _ y: T, _ z: T, _ rest: T...) -> T where T : Comparable
Bunu Float
s ile şu şekilde kullanabilirsiniz :
let maxInt = max(12.0, 18.5, 21, 26, 32.9, 19.1)
Ancak Swift ile kullanım max(_:_:)
ve kardeşlerini sayılarla sınırlı değilsiniz . Aslında bu fonksiyonlar geneldir ve uymasını herhangi bir parametre türünü kabul edebilir Comparable
protokol, bu olabilir String
, Character
ya da aramaları özel biri class
veya struct
.
Bu nedenle, aşağıdaki Playground örnek kodu mükemmel şekilde çalışır:
class Route: Comparable, CustomStringConvertible {
let distance: Int
var description: String {
return "Route with distance: \(distance)"
}
init(distance: Int) {
self.distance = distance
}
static func ==(lhs: Route, rhs: Route) -> Bool {
return lhs.distance == rhs.distance
}
static func <(lhs: Route, rhs: Route) -> Bool {
return lhs.distance < rhs.distance
}
}
let route1 = Route(distance: 4)
let route2 = Route(distance: 8)
let maxRoute = max(route1, route2)
print(maxRoute)
Ayrıca, bir Array
, a Set
, a Dictionary
veya başka herhangi bir Comparable
öğe dizisinin içindeki öğelerin min / maks öğesini almak istiyorsanız , max () veya min () yöntemlerini kullanabilirsiniz ( daha fazlası için bu Yığın Taşması yanıtına bakın) ayrıntılar).