Sobes.tech
Junior — Middle

Set növündə kolleksiya daxilində elementlərin unikalılığı necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

iOS-da, Set kolleksiyası elementlərin unikalığını hash və bərabərlik müqayisəsi vasitəsilə təmin edir.

Hər bir element Set-də Hashable protokoluna uyğun olmalıdır, bu da aşağıdakıların həyata keçirilməsini tələb edir:

  • hash(into:) metodunu — elementin hash kodunu hesablamaq üçün;
  • == operatorunu — iki elementin bərabərliyini yoxlamaq üçün.

Set-ə element əlavə etdikdə, sistem onun hash kodunu hesablayır və eyni hash və bərabərlikə malik elementin olub-olmadığını yoxlayır. Əgər varsa, element əlavə edilmir və bu, unikalığı təmin edir.

Nümunə:

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")) // əlavə olunmayacaq, çünki artıq belə bir element mövcuddur

Beləliklə, Set-də unikalıq hash və elementlərin müqayisəsi ilə təmin edilir.