स्विफ्ट 5 के साथ, max(_:_:)
और ग्लोबल न्यूमेरिक फंक्शंसmin(_:_:)
का हिस्सा हैं । निम्नलिखित घोषणा है:max(_:_:)
func max<T>(_ x: T, _ y: T) -> T where T : Comparable
आप इसे इस तरह से उपयोग कर सकते हैं Int
:
let maxInt = max(5, 12) // returns 12
यह भी ध्यान दें कि अन्य कार्य भी कहे जाते हैं max(_:_:_:_:)
और min(_:_:_:_:)
इससे आप और भी अधिक मापदंडों की तुलना कर सकते हैं। max(_:_:_:_:)
निम्नलिखित घोषणा है:
func max<T>(_ x: T, _ y: T, _ z: T, _ rest: T...) -> T where T : Comparable
आप इसे इस तरह से उपयोग कर सकते हैं Float
:
let maxInt = max(12.0, 18.5, 21, 26, 32.9, 19.1) // returns 32.9
हालाँकि स्विफ्ट के साथ, आप उपयोग करने के लिए सीमित नहीं हैं max(_:_:)
और संख्याओं के साथ इसके भाई बहन। वास्तव में, वे कार्य सामान्य हैं और Comparable
प्रोटोकॉल के अनुरूप किसी भी पैरामीटर प्रकार को स्वीकार कर सकते हैं , यह हो सकता है String
, Character
या आपके किसी कस्टम class
या struct
।
इस प्रकार, निम्नलिखित खेल का मैदान नमूना कोड पूरी तरह से काम करता है:
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) // prints "Route with distance: 8"
इसके अलावा, यदि आप उन तत्वों का न्यूनतम / अधिकतम तत्व प्राप्त करना चाहते हैं जो तत्वों Array
, a Set
, Dictionary
या (या Comparable
तत्वों के किसी अन्य अनुक्रम) के अंदर हैं, तो आप अधिकतम () या मिनट () विधियों का उपयोग कर सकते हैं (देखें इस ढेर अतिप्रवाह उत्तर के लिए और अधिक विवरण)।