Sobes.tech
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-ում յուրահատկությունը հասնում է հեշավորման և տարրերի համեմատության միջոցով։