Junior — Middle
Ինչպե՞ս է իրականացնում տարրերի յուրահատկությունը Set տեսակի հավաքածուում։
sobes.tech AI
Պատասխան AI-ից
ԻՕՍ-ում, Set հավաքածուն ապահովում է տարրերի յուրահատկությունը հեշավորման և հավասարության համեմատության միջոցով:
Յուրաքանչյուր տարր Set-ում պետք է համապատասխանի Hashable պրոտոկոլին, որը պահանջում է իրականացնել.
hash(into:)մեթոդը՝ տարրի հեշ-կոդը հաշվարկելու համար;==օպերատորը՝ երկու տարրերի հավասարությունը ստուգելու համար:
Երբ դուք ավելացնում եք տարր Set-ին, համակարգը հաշվում է նրա հեշը և ստուգում, թե արդյոք արդեն կա նույն հեշով և հավասար տարր։ Եթե կա, տարրը չի ավելացվում, ապահովելով յուրահատկությունը:
Օրինակ՝
struct Person: Hashable {
let id: Int
let name: String
}
var people = Set<Person>()
people.insert(Person(id: 1, name: "Alice"))
people.insert(Person(id: 1, name: "Alice")) // չի ավելացվի, քանի որ արդեն կա նման տարր
Այսպիսով, Set-ում յուրահատկությունը հասնում է հեշավորման և տարրերի համեմատության միջոցով։