Sobes.tech
Junior — Middle

Kādi datu tipi vai objekti var darboties kā atslēgas vārdnīcās vai hash-tabulās?

sobes.tech AI

Atbilde no AI

V vārdnīcās (dictionary) vai hēša tabulās atslēgas var būt objekti, kas atbilst šādiem prasībām:

  • Pareizi īstenoti vienlīdzības salīdzināšanas (equals Java, isEqual Swift) un haša koda aprēķina (hashCode Java) metodes.
  • Tie ir nemainīgi (immutable) vai vismaz pēc izmantošanas kā atslēga nemainās, lai izvairītos no meklēšanas problēmām.

iOS (Swift) gadījumā, vārdnīcās (Dictionary) parasti tiek izmantoti tipi, kas atbilst Hashable protokolam. Tie var būt:

  • Standarta tipi: String, Int, Double, Bool.
  • Lietotāja definētas struktūras vai klases, kas īsteno Hashable protokolu.

Piemērs:

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

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

Tādēļ atslēgas ir jābūt hashable un nemainīgām, lai vārdnīca darbotos pareizi.