Sobes.tech
Junior — Middle

როგორ დავადგინოთ სწორი გასაღების ტიპი ლექსიკაში გამოყენებისთვის?

sobes.tech AI

პასუხი AI-სგან

iOS (Swift)-ში, ლექსიკის გასაღები უნდა შეესაბამებოდეს Hashable პროტოკოლს. ეს ნიშნავს, რომ გასაღებმა უნდა შეძლოს ჰეშ-ღირებულების გამოთვლა და თანასწორობის შედარება, რათა ლექსიკმა ეფექტურად შეინახოს და მოძებნოს მნიშვნელობები.

მაგალითად, სტანდარტული ტიპები, როგორიცაა String, Int, UUID, უკვე ახორციელებენ Hashable-ს და შესაფერისია გასაღებად.

თუ ქმნით საკუთარი ტიპის გასაღებს, უნდა განახორციელოთ Hashable პროტოკოლი:

struct User: Hashable {
    let id: Int
    let name: String
}

var dict: [User: String] = [:]
dict[User(id: 1, name: "Alice")] = "Developer"

ამიტომ, სწორი ტიპი გასაღებისთვის არის ის, რომელიც:

  • ახორციელებს Hashable-ს;
  • აქვს უნიკალური მნიშვნელობები გასაღებისთვის, რათა თავიდან აიცილოს კოლიზიები;
  • არის უცვლელი (სჯობს გამოიყენოთ სტრუქტურები ან უცვლელი თვისებები).