Junior — Middle
Кадом намудҳои объектҳо иҷозат дода мешаванд ҳамчун унсурҳои калидӣ дар коллексияи навъи Set?
sobes.tech AI
Ҷавоб аз AI
Дар коллексияи навъи Set дар iOS (масалан, NSSet ё Swift Set), унсурҳои калидӣ метавонанд объектҳое бошанд, ки ба талаботи зерин ҷавобгӯ бошанд:
- Дар Objective-C (NSSet): объектҳо бояд методҳои
-hashва-isEqual:-ро дастгирӣ кунанд, то муқоиса ва хешкунии дуруст анҷом дода шавад. - Дар Swift (Set): унсурҳо бояд ба протоколи
Hashableмувофиқат кунанд, яъне арзиши хеш дошта бошанд ва имконияти муқоиса барои баробариро дошта бошанд.
Ин барои он зарур аст, ки коллексия метавонад унсурҳои беназирро самаранок нигоҳ дорад ва амалиёти ҷустуҷӯро ба суръат иҷро кунад.
Масалан дар Swift:
struct Person: Hashable {
let id: Int
let name: String
}
var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))
Аз ин рӯ, ҳар объекте, ки Hashable-ро иҷро мекунад (дар Swift) ё методҳои hash ва isEqual:-ро дар Objective-C дорад, метавонад унсури Set бошад.