स्विफ्ट 3:
आप सरणी में कस्टम ऑब्जेक्ट खोजने के लिए कार्यक्षमता में निर्मित स्विफ्ट का उपयोग कर सकते हैं।
सबसे पहले आपको यह सुनिश्चित करना चाहिए कि आपकी कस्टम ऑब्जेक्ट इसके अनुरूप है: इक्विटेबल प्रोटोकॉल ।
class Person : Equatable { //<--- Add Equatable protocol
let name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
//Add Equatable functionality:
static func == (lhs: Person, rhs: Person) -> Bool {
return (lhs.name == rhs.name)
}
}
आपकी वस्तु में समतुल्य कार्यक्षमता के साथ, स्विफ्ट अब आपको अतिरिक्त गुण दिखाएगा जिसका उपयोग आप किसी सरणी में कर सकते हैं:
//create new array and populate with objects:
let p1 = Person(name: "Paul", age: 20)
let p2 = Person(name: "Mike", age: 22)
let p3 = Person(name: "Jane", age: 33)
var people = [Person]([p1,p2,p3])
//find index by object:
let index = people.index(of: p2)! //finds Index of Mike
//remove item by index:
people.remove(at: index) //removes Mike from array